Javascript 焦点和模糊功能有问题
我有一个表单,其中有三个字段和两个按钮 单击添加可选电子邮件地址按钮添加一个新的电子邮件字段。我的问题是保存按钮。我希望保存按钮将保持禁用状态,直到用户单击该字段或在输入字段中添加任何值。 所以Javascript 焦点和模糊功能有问题,javascript,jquery,Javascript,Jquery,我有一个表单,其中有三个字段和两个按钮 单击添加可选电子邮件地址按钮添加一个新的电子邮件字段。我的问题是保存按钮。我希望保存按钮将保持禁用状态,直到用户单击该字段或在输入字段中添加任何值。 所以 如果用户单击任何输入字段,则“保存”按钮将变为 活跃的 如果用户输入值,它将保持活动状态 如果用户点击输入,但没有给出任何值,它将改变 再次禁用 通过添加可选电子邮件地址,新添加的输入也一样 在我的代码中,如果在单击并没有为新添加的输入工作之后输入上没有给出值,它不会返回到禁用状态。我不知道原因。任
- 如果用户单击任何输入字段,则“保存”按钮将变为 活跃的
- 如果用户输入值,它将保持活动状态李>
- 如果用户点击输入,但没有给出任何值,它将改变 再次禁用
$("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()
测试的结果。在与空值进行比较时,您应该始终使用“==”。