2016-10-02 78 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事件進行字段驗證。