更改变量脚本

时间:2019-03-19 16:52:00

标签: javascript jquery

我可以使用此代码在ExpirationTime具有值时禁用ValidUntil字段,此问题仅在我进行更改时有效,而在编辑记录时无效,是否有任何方法可以修改此代码以始终禁用Validuntil(如果Expirationtime)有价值吗?

$('#x_ExpirationTime').on('change', function() {
if(this.value.length > 0)
$('#x_ValidUntil').attr('disabled','disabled');
else
$('#x_ValidUntil').removeAttr('disabled');
}); 

预先感谢

1 个答案:

答案 0 :(得分:1)

您需要在事件内部执行代码而无需执行change动作才能使其自行工作。您有几种选择:

  1. 强制事件执行:

    $('#x_ExpirationTime').on('change', function() { }).change();
    

    在事件绑定的末尾添加change(),以便在页面初始化后执行它。它将像用户更改它一样工作;

  2. 在函数中分隔事件正文:

    function checkValue() {
        let $input = $('#x_ValidUntil');
        if($('#x_ExpirationTime').val().length > 0)    
            $input.attr('disabled','disabled');
        else
            $input.removeAttr('disabled');
    }
    
    $('#x_ExpirationTime').on('change', checkValue);
    
    checkValue(); 
    

    孤立地调用checkValue()会神奇。

两种方法都将具有相同的结果。