Attr确实可以,但是removeAttr似乎对我的按钮不起作用

时间:2018-11-21 11:06:22

标签: javascript jquery

我想以这样的方式创建我的按钮:如果用户将鼠标悬停在该按钮上,该按钮将被禁用,但是输入字段将为空。这行得通,但是当我填写所有内容并再次将鼠标悬停在按钮上时,它将保持禁用状态。 我查找了以下链接:Remove disabled attribute using JQuery?,然后按此处所说做(尝试了多个答案),但没有一个起作用。我知道变量是正确的,我已经console.log();了。所以基本上是这样的问题:我在做错什么还是错过了?

代码:

function submitBtn(tracker) {
    let btn = ($('<button/>', {
        'type': 'submit',
        'class': 'btn btn-primary',
        'id': 'submitDataBtn',
        'name': 'submitDataBtn',
        'value': 'submit'
    })).text('Submit').hover(function() {
        let datePicker = $('#datePicker').val();
        let weight = $('#weight').val();
        let distance = $('#distance').val();
        let timePicker = $('#timePicker').val();

        if(datePicker === '' || weight === '' || distance === '' || timePicker === '') {
            $(this).attr('disabled', true);

        }else if (datePicker !== '' || weight !== '' || distance !== '' || timePicker !== '') {
            $(this).prop('disabled', false);

        }else {
            // do something else
        }   
    });
    return btn;
}

1 个答案:

答案 0 :(得分:0)

禁用的按钮不能具有悬停事件。如果您希望将其显示为禁用,请使用不透明的类。如果您要停止提交表单,请在表单上使用验证,例如:

document.getElementsByTagName("form")[0]).onsubmit=function() {
    return validate(this);
  }