我试图检查表单中是否已存在数据库中的现有项目,但似乎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'
};
}
});
在浏览器调试器控制台中,它不会打印任何内容。理想情况下,模糊功能应该在我离开现场时立即起作用。
您没有在代码中调用任何内容。您正在将AJS.params.baseURL
添加到字符串"/rest/leangearsrestresource/1.0/message/project/{product_name}"
,然后使用逗号。我想,那里应该有一个函数调用,但是你的代码有语法错误,它不会在第一时间运行。它与你的username_check_PostAjaxOptions
没有被调用无关,没有任何东西被称为。
鉴于基于逗号的语句的签名,我只能假设您正在尝试进行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(
我想你在$.ajax(
之前错过了一个AJS.params.baseURL + ...
。
(谢谢Ruben,你的评论让我意识到,现在逗号也有意义)。
正如您的代码目前所示,)
之前的最后一个.done
是无法匹配的,导致语法错误:
username_check_PostAjaxOptions(product_name)).done(function (result) {
不过,控制台必须告诉你这个。