在表格中,我有一行有两个输入 - 一个选择和一个文本。我想要实现的是,如果一个有一个值,那么另一个(在同一行)应该禁用。当文本框中有一个值时,这在加载时可以正常工作,但当只有选择框中有一个值时,这似乎不起作用。
正如您在此处的示例中看到的那样:http: //jsfiddle.net/anAgent/UBUhn/1/ “更改”事件正常工作,但它不起作用onload。
任何帮助将不胜感激!
我正在使用 jQuery 1.5.2 以及 Google Chrome 和 IE9
使用最终代码更新
感谢@scoopseven 和@eicto 的输入。基于这两个答案,这是最终的代码。我希望它可以帮助别人。
$(document).ready(function() {
$(".validation-compare").change(runRowValidation);
$(".validation-compare").each(runRowValidation);
});
function runRowValidation() {
var $me = $(this),
$other = $('.validation-compare',$me.closest("tr")).not($me),
mVal = $me.val(),
oVal =$other.val();
if(mVal != "" && oVal == "") {
$me.removeAttr('disabled');
$other.attr('disabled',1);
} else if(mVal == "" && oVal != "") {
$other.removeAttr('disabled');
$me.attr('disabled',1);
} else {
$other.removeAttr('disabled');
$me.removeAttr('disabled');
}
}
您可以在以下网址看到它的实际效果:http: //jsfiddle.net/anAgent/UBUhn/24/