0

我有以下 jquery 脚本

var $checked = $inputs.filter(':checked');
var numChecked = $checked.length;

$checked.each(function () {
    var val = (this).value;

    if (val.indexOf("Ya") != -1) {
        alert('old val   ' + val);
        val = val.replace("Ya", "Y2a");
        alert('new val   ' + val);
        alert($(':input[value^="' + val + '"]').value);

        //$(val).attr({ 'disabled': true, 'aria-disabled': true })[flag ? 'addClass' : 'removeClass']('ui-state-disabled');
    }
}); 

旧值为:ltrYaxis0

新值为:ltrY2axis0

我可以替换,但是当我尝试测试它是否找到新输入时,它会说undefined。我必须将此隐藏或禁用

4

3 回答 3

1

试试这个

 val = val.replace("Ya", "Y2a");
       $(':input[value='+val + ']'.attr({ 'disabled': true, 'aria-disabled': true })
于 2013-09-16T12:39:39.627 回答
0

这条线

var val = (this).value;

有2个错误。

  • 你错过了$
  • 而不是 .value 而是 .val()

    var val = $(this).val();
    

小心:

    $(val).attr({ 'disabled': true, 'aria-disabled': true })

应该是

$(this).attr({ 'disabled': true, 'aria-disabled': true }) ...
于 2013-09-16T11:05:12.620 回答
0

如果我正确理解了要求,那就可以了

var $checked = $inputs.filter(':checked');
var numChecked = $checked.length;

$checked.filter(function () {
    return this.value.indexOf("Ya") != -1;
}).val(function (idx, val) {
    return val.replace("Ya", "Y2a");
}).attr({
    'disabled': true,
    'aria-disabled': true
})[flag ? 'addClass' : 'removeClass']('ui-state-disabled');
于 2013-09-11T13:26:39.550 回答