为什么没有调用Javascript方法?

问题描述 投票:2回答:3

我试图检查表单中是否已存在数据库中的现有项目,但似乎javascript代码本身未被调用。这是我的代码。

<div class="field-group">
    <label class="label">Product Name</label>
        <input class="text" id="discovery-product-name" type="text" name="productName"  value="$textutils.htmlEncode(${productName})" required>
        <span id="result_product"></span>
<div >

这是我的javascript代码:

    AJS.$(function(){

    AJS.$("#discovery-product-name").blur(function() {


        var product_name = AJS.$("#discovery-product-name").val();
        AJS.log(product_name);


    jQuery.ajax(
        AJS.params.baseURL + "/rest/leangearsrestresource/1.0/message/project/{product_name}",

        username_check_PostAjaxOptions(product_name)).done(function (result) {
            AJS.log(result);
            if (result.success) {

                if(result=='A DS Already exists')
                {
                    $('#result_product').html('Discovery Project already exist');
                    $('.save-button').attr('disabled', 'disabled');
                }
                else
                {
                    $('#result_product').html(product_name+' is valid username');
                }

            }
        })
    });

    function username_check_PostAjaxOptions (product_name) {
        return {
            "cache": false,
            "contentType": 'application/json',
            "dataType": 'json',
            "processData": false,
            "type": 'GET'
        };
    }
});

在浏览器调试器控制台中,它不会打印任何内容。理想情况下,模糊功能应该在我离开现场时立即起作用。

javascript jquery velocity
3个回答
1
投票

您没有在代码中调用任何内容。您正在将AJS.params.baseURL添加到字符串"/rest/leangearsrestresource/1.0/message/project/{product_name}",然后使用逗号。我想,那里应该有一个函数调用,但是你的代码有语法错误,它不会在第一时间运行。它与你的username_check_PostAjaxOptions没有被调用无关,没有任何东西被称为。


0
投票

鉴于基于逗号的语句的签名,我只能假设您正在尝试进行AJAX调用但是您忘记调用它,您有:

  AJS.params.baseURL + "/rest/leangearsrestresource/1.0/message/project/{product_name}",username_check_PostAjaxOptions(product_name))

假设jQuery在AJS中。$ then then:

 AJS.$.ajax(AJS.params.baseURL + "/rest/leangearsrestresource/1.0/message/project/{product_name}",username_check_PostAjaxOptions(product_name))

基本上你忘了放:

 AJS.$.ajax(

0
投票

我想你在$.ajax(之前错过了一个AJS.params.baseURL + ...。 (谢谢Ruben,你的评论让我意识到,现在逗号也有意义)。

正如您的代码目前所示,)之前的最后一个.done是无法匹配的,导致语法错误:

username_check_PostAjaxOptions(product_name)).done(function (result) {

不过,控制台必须告诉你这个。

© www.soinside.com 2019 - 2024. All rights reserved.