Javascript jquery ajax-如何检查重复名称
当我使用文本框上的模糊函数来检查重复名称时,使用jquery ajax工作正常 以下是代码:Javascript jquery ajax-如何检查重复名称,javascript,jquery,ajax,Javascript,Jquery,Ajax,当我使用文本框上的模糊函数来检查重复名称时,使用jquery ajax工作正常 以下是代码: function duplicate(data){ //alert(data); //successfully gives the value from the text input $.post("test.php", {name: data}, function (data){ if(data){ alert('duplicate name')
function duplicate(data){
//alert(data); //successfully gives the value from the text input
$.post("test.php", {name: data}, function (data){
if(data){
alert('duplicate name');
}
});
}
$(function() {
$("#name").blur(function(){
var data = $("#name").val();
duplicate(data);
});
});
问题是它会显示警报消息,在某些情况下,我们提交时会使用重复的名称,因此没有必要检查重复
让我知道使用onsubmit函数(jquery ajax或javascript)检查重复名称的解决方案。您的问题令人困惑,因为您在请求之外以及在请求回调中使用了相同的变量名,
data
我不确定您是否要求根据已经提交并返回页面的数据、服务器上存在的数据检查重复,或者该数据是否只是“是”
根据您提供的代码,如果服务器在POST
完成后返回yes
,则数据似乎被认为是重复的
无论哪种方式,这都可能有帮助:
$(function() {
$('#name').blur(function() {
duplicate($('#name').val());
});
});
function duplicate(sData) {
var sDuplicateValue = ...; // assign this whatever constitutes a duplicate value
if(isDataDuplicate(sData, sDuplicateValue)) {
// you have duplicate data
}
$.post('test.php', { name: sData }, function(sResposeData) {
/* because of question ambiguity, i don't know if you want to compare
* sData and sResponseData, or sResponseData and "yes." if it's the latter,
* just do isDataDuplicate(sResponseData, "yes"); otherwise, do this:
*/
if(isDataDuplicate(sData, sResponseData) {
// it's the same..
}
});
}
function isDataDuplicate(sData, sDuplicateValue) {
if(sDuplicateValue === null) {
return sData === 'yes';
} else {
return sData === sDuplicateValue;
}
}
我会这样做:
$(function() {
$("#name").blur(function(){
var value = $("#name").val();
$.post(
"checkDuplicates.php",
{ name: value},
function (data){
if( data.response === 'yes'){
$("#name").css({
'border': '1px red solid'
}).parent().append('This name already exists');
} else {
return false;
}
},
'json'
);
});
});
test.php返回的究竟是什么?这里是test.php:$name=$\u POST['name'];如果($name='test'){echo“重复的名称”}否则{echo“不是重复的”}如果它不是重复的,那么我使用php代码将名称保存到记录中。