我正在尝试检查表单中是否已存在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'
};
}
});
在浏览器调试器控制台中,它不会打印任何内容。理想情况下,模糊功能应该在我离开现场时立即起作用。
答案 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(