【发布时间】:2014-03-26 10:11:58
【问题描述】:
我有一个 Ajax 函数来检查 username 是否可用。但是,如果我使用按钮并单击功能,它就可以工作。我不想使用按钮。因此,我正在检查更改 username2 字段的可用性。但这是行不通的。没有 Ajax 调用正在进行。
$('#user_name2').change(function(){
//$(".help-block1").hide();
var user_name = $("#user_name2").val();
var name = $("#u_name").val();
//var hidd = $("#hidd").val();
var baseurl = $("#site_url").val();
if (user_name == '') {
$("#user_name2").after('<p class="help-block1"><b style="color:red;">Enter a username first</b></p>');
}
else if (user_name == name) {
$("#user_name2").after('<p class="help-block1"><b style="color:red;">This is current username</b></p>');
}
else {
$.ajax({
url: "" + baseurl + "user/check_user",
async: false,
type: "POST",
dataType: "json",
cache: false,
data: {
user_name: user_name
},
success: function(response) {
if (response.res_user == 'exist') {
$("#user_name2").after('<p class="help-block1"><b style="color:red;">Username alredy exist</b></p>');
$("#user_name2").focus();
$("#hidd").val('fail');
}
else if (response.res_user == 'available') {
$("#user_name2").after('<p class="help-block1"><b style="color:' + response.status + ';">Username available</b></p>');
}
else {
$("#user_name2").after('<p class="help-block1"><b style="color:red;">Error. Try again</b></p>');
}
}
});
//return false;
}
});
HTML 部分在这里
<div class="form-group">
<label for="exampleInputEmail1">User Name</label>
<input type="text" maxlength="255" class="form-control" id="user_name2" placeholder="" value="' . $res[0]->u_name . '"required>
<input type="hidden" id="u_name" value="' . $res[0]->u_name . '">
</div>
【问题讨论】:
-
@MohammadAdil Adil :对不起...现在看到问题已编辑
-
在文本字段上绑定更改事件监听器,您需要从输入文本元素失去焦点以发送 ajax 请求?
-
什么意思?我无法理解。
-
您是在文本域外点击吗?因为如果不是,您的 ajax 将不会触发。