2016-10-02 66 views
1

我有两个输入:第一个是X文件上传。第二个是Y-一个URL的输入。jQuery - 两个输入的简单验证

到目前为止,我有一个代码,检查Y是否有效,然后删除X所需的属性,否则我希望X是必需的。

$(Y).blur(function(){ 
    if ($(this).is(':valid') == true) { 
     $(X).removeAttr('required') 
    } else if ($(this).is(':valid') == false) { 
     $(X).attr('required'); 
    } 
}); 

由于某些原因,此代码在输入Y有效时起作用,它将删除该属性。但让我们说,用户感到遗憾,并希望将Y空白,它不会返回X所需的属性。

试图保持尽可能简单和明确的解释。如果存在误解,我会尝试编辑这个问题并使其更清楚。

回答

0

最简单的方法是:

$(Y).blur(function(){ 
if ($(this).is(':valid') == true && $(this).val() != '') { 
    $(X).removeAttr('required') 
} else if ($(this).is(':valid') == false || $(this).val() == '') { 
    $(X).attr('required'); 
} 

});

在这种情况下,当用户删除内容时,必需的属性将返回(不要忘记添加修剪功能,我没有使用它在示例中)。

我建议将这个逻辑封装到验证函数中。我也不喜欢模糊事件(可用性很差),我会推荐onchange事件进行字段验证。