为什么没有调用Javascript方法?

时间:2015-08-06 13:58:34

标签: javascript jquery velocity

我正在尝试检查表单中是否已存在db中的现有项目,但似乎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'
        };
    }
});

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

正如您的代码当前所示,)之前的.done不匹配,导致语法错误:

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

但是,控制台必须告诉你这个。

答案 2 :(得分:0)

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

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

假设jQuery在AJS中。$ then:

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

基本上你忘记了:

 AJS.$.ajax(