Javascript jQuery-禁用基于同一行上的另一个元素的选择

Javascript jQuery-禁用基于同一行上的另一个元素的选择,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,在一个表中,我有一行有两个输入-一个选择和一个文本。我想要实现的是,如果一个有一个值,那么另一个(在同一行上)应该禁用。当文本框中有值时,此选项可以正确地onload,但当仅选择框中有值时,此选项似乎不起作用 正如您在这里的示例中所看到的:“change”事件工作正常,但它在加载时不工作 任何帮助都将不胜感激 我正在使用jQuery1.5.2以及Google Chrome和IE9 使用最终代码更新 感谢@scoopseen和@eicto的支持。基于这两个答案,这里是最后的代码。我希望它能帮助别

在一个表中,我有一行有两个输入-一个选择和一个文本。我想要实现的是,如果一个有一个值,那么另一个(在同一行上)应该禁用。当文本框中有值时,此选项可以正确地onload,但当仅选择框中有值时,此选项似乎不起作用

正如您在这里的示例中所看到的:“change”事件工作正常,但它在加载时不工作

任何帮助都将不胜感激

我正在使用jQuery1.5.2以及Google Chrome和IE9


使用最终代码更新

感谢@scoopseen和@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');
    }
}​

您可以在以下位置看到它的作用:

您需要分离该函数,并在单击事件和页面加载时调用它。大概是这样的:

    jQuery(function($){

        function myFunction() {
            // do somestuff
        }

        // myFunction needs to be called when select is clicked and when page is loaded
        $('#someelement').click(myFunction);
        $(document).ready(myFunction);

     });
var validme=function(){
var me=$(此);
me.removeClass('validation-compare');
if(me.val()){
console.log(me);
me.addClass('valid');
me.parent().parent().find('.validation compare').attr('disabled',1);
me.addClass('validation-compare');
返回;
}          
me.removeClass('valid');

如果(me.parent().parent().find('.validation compare.valid').length我认为不需要将类
设置为valid
,只需替换

var $otherInput = $('.validation-compare', $parent).not('.valid');


这将解决您在onload上的问题。这里有一个onload事件已设置并正在运行。我不希望在单击元素时触发事件-仅更改。这如何解决存在值时选择的问题?$(“#someelement”)。更改(myFunction);
var $otherInput = $('.validation-compare', $parent).not('.valid');
var $otherInput = $('.validation-compare', $parent).not($me);