焦点和模糊功能有问题

Having issue with focus and blur function

本文关键字:有问题 功能 模糊 焦点      更新时间:2023-09-26

我有一个Form,其中有三个字段和两个按钮FIDDLE

单击添加可选电子邮件地址按钮可以添加一个新的电子邮件字段。我的问题是保存按钮。我希望保存按钮将保持禁用状态,直到用户点击该字段或在输入字段中添加任何值。所以,

  • 如果用户单击任何输入字段的"保存"按钮将变为活动的
  • 如果用户输入一个值,它将保持活动状态
  • 如果用户点击输入但没有给出任何值,它将更改以再次禁用

添加可选电子邮件地址添加的新输入相同

在我的代码中,如果在点击后输入没有给定值,并且不为新添加的输入工作,它不会返回到禁用状态。我不确定原因。任何帮助都能挽救我的一天。

JS

$("body").on('focus', '.user-input input', function() {  
   $(".update-change").removeAttr('disabled');
}).blur(function() {
    if ($("").val() == '') {
        $(".update-change").attr('disabled', 'disabled');
    }
});
$('.update-list-confirm').click(function(){
    $(".update-change").attr('disabled', 'disabled');
});

// Add email
$("body").on('click', '.add-new-email', function() {
    var newemail = '<div class="form-group"><em class="pull-right">Optional</em><input type="email" name="userEmail" class="form-control" id="" placeholder="mymail@mail.com"></div>';
$(newemail).insertBefore(this);     
});

尝试在相同的输入元素上处理模糊

$("body").on('focus', '.user-input input', function() {  
   $(".update-change").removeAttr('disabled');
}).on ('blur', '.user-input input', function() {
    if ($(this).val() === '') {
        $(".update-change").attr('disabled', 'disabled');
    }
});

这是打字错误吗?用正确的值更改:

if ($("").val() == '') {

我想应该是:

if ($('[name="userEmail"]').val() == '') {

如果任何文本字段为空,要禁用SAVE按钮,您应该使用以下代码片段:

$(':text').focusout(function () {
    $(':text').each(function (i) {
        if (this.value === '') {
            $('.update-change').attr('disabled', 'disabled');
        }
    });
});

这样,当单击"保存"按钮时(:text字段不再聚焦),将检查每个:text字段的值。