Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 焦点和模糊功能有问题_Javascript_Jquery - Fatal编程技术网

Javascript 焦点和模糊功能有问题

Javascript 焦点和模糊功能有问题,javascript,jquery,Javascript,Jquery,我有一个表单,其中有三个字段和两个按钮 单击添加可选电子邮件地址按钮添加一个新的电子邮件字段。我的问题是保存按钮。我希望保存按钮将保持禁用状态,直到用户单击该字段或在输入字段中添加任何值。 所以 如果用户单击任何输入字段,则“保存”按钮将变为 活跃的 如果用户输入值,它将保持活动状态 如果用户点击输入,但没有给出任何值,它将改变 再次禁用 通过添加可选电子邮件地址,新添加的输入也一样 在我的代码中,如果在单击并没有为新添加的输入工作之后输入上没有给出值,它不会返回到禁用状态。我不知道原因。任

我有一个表单,其中有三个字段和两个按钮

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

  • 如果用户单击任何输入字段,则“保存”按钮将变为 活跃的
  • 如果用户输入值,它将保持活动状态
  • 如果用户点击输入,但没有给出任何值,它将改变 再次禁用
通过添加可选电子邮件地址,新添加的输入也一样

在我的代码中,如果在单击并没有为新添加的输入工作之后输入上没有给出值,它不会返回到禁用状态。我不知道原因。任何帮助都能救我一命

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','用户输入',函数(){
$(“.update change”).removeAttr('disabled');
}).blur(函数(){
如果($(“”).val()=''){
$(“.update change”).attr('disabled','disabled');
}
});
$('.update list confirm')。单击(函数(){
$(“.update change”).attr('disabled','disabled');
});
//添加电子邮件
$(“正文”)。在('单击','上。添加新电子邮件',函数(){
var newemail='可选';
$(newemail).insertBefore(this);
});

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

if ($("").val() == '') {
我想应该是:

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

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

$("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');
    }
});

若要在任何文本字段为空时禁用“保存”按钮,应使用以下代码段:

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

这样,当单击“保存”按钮时(并且
:text
字段不再处于焦点),每个
:text
字段都会被检查一个值。

您的需求类型冲突“如果用户单击任何输入字段的“保存”按钮将变为活动状态”,并且“如果用户单击输入但没有给出任何值,它将再次变为禁用。”或者,对于最后一个,如果用户
blur
从输入返回到禁用状态,您的意思是吗?我认为b/c您有占位符。val()=''将不起作用。尚未测试它。请尝试
if($(此).val()=''{$(.update Change”).attr('disabled','disabled');
您确实意识到,即使四个输入元素中有三个保留为空,保存按钮也将被启用。在启用保存之前,您应该组合四个
.val()
测试的结果。在与空值进行比较时,您应该始终使用“==”。