如果满足指定的条件,我有以下jQuery代码来禁用某些表单按钮。调用PHP文件以将用户的输入与数据库查找匹配。如果输入与查找匹配,则禁用按钮并显示消息(uinError)。这是jQuery:
$(function()
{
$('input[id="empUIN"]').keyup(function(event)
{
var uin = $('#empUIN').val();
$.ajax(
{
type: 'POST',
url: 'uinlookup.php',
data:
{
term: uin
},
success: function(data)
{
$('#uinError').html(data);
$('#class1Buttons :input').attr('disabled', true);
}
}); //End ajax
event.preventDefault();
});
}); //End function
如果存在匹配,则此方法有效,但如果用户提供不触发匹配的输入(即,如果他在输入上退格并键入新数字),则需要重新启用按钮。现在,无论empUIN输入如何,按钮都会保持禁用状态。
答案 0 :(得分:1)
您需要使用.prop()
:
$('#class1Buttons :input').prop('disabled', true); //true = disabled, false = enabled. Not sure what you want
在你的情况下,这应该有效:
$('#class1Buttons :input').prop('disabled', data);
答案 1 :(得分:1)
在PHP中返回失败的请求(500状态示例)。
header('HTTP/1.1 500 Internal Server Booboo');
header('Content-Type: application/json; charset=UTF-8');
die(json_encode(array('error' => true))); // some optional data returned
在jQuery调用中添加错误函数。
$(function()
{
$('input[id="empUIN"]').keyup(function(event)
{
var uin = $('#empUIN').val();
$.ajax(
{
type: 'POST',
url: 'uinlookup.php',
data:
{
term: uin
},
success: function(data)
{
$('#uinError').html(data);
$('#class1Buttons :input').attr('disabled', true);
},
error: function()
{
// enable button
$('#class1Buttons :input').attr('disabled', false);
},
}); //End ajax
event.preventDefault();
});
}); //End function
您可以阅读有关jQuery.ajax() here的更多信息。
答案 2 :(得分:0)
您可以使用$("#class1Buttons :input").removeAttr('disabled')
删除该属性。