テーブルには、2 つの入力 (1 つの選択と 1 つのテキスト) を持つ行があります。私が達成したいのは、一方に値がある場合、もう一方 (同じ行) を無効にする必要があるということです。これは、テキストボックスに値がある場合はオンロードで正しく機能しますが、選択ボックスのみに値がある場合は機能しないようです。
ここの例でわかるように: http://jsfiddle.net/anAgent/UBUhn/1/ 「変更」イベントは正しく機能しますが、 onloadは機能しません。
どんな助けでも大歓迎です!
私はjQuery 1.5.2とGoogle ChromeとIE9の両方で作業しています
最終コードで更新
@scoopseven と @eicto に感謝します。これら 2 つの回答に基づいて、最終的なコードを次に示します。それが他の誰かに役立つことを願っています。
$(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/で実際の動作を確認できます。