2012-03-23 129 views
0

我很難理解IF語句的限制和可能性。我只想知道寫下面的最好和最短的方法。基本上我只想在輸入爲空或者textarea仍然包含默認值時返回false。這種形式是名稱,電子郵件,電話和評論,電話是可選的,所以我不能只針對所有輸入。編寫IF語句的最佳方式

$('form').submit(function(){ 
    if ($('#email').val() == '') { 
     return false; 
    } else if ($('#name').val() == '') { 
     return false; 
    } else if ($('textarea').val() === 'Enter comments here.') { 
     return false; 
    } 
}); 

此代碼有效,但佔用一堆空間。謝謝!

+0

您如何記住每個控件的默認值? (新的''placeholder'屬性,使用'data'屬性等?) – 2012-03-23 17:35:27

回答

6

結合您的情況成一個單一的邏輯語句,就像這樣:(!)

return !(($('#email').val() == '') 
    || ($('#name').val() == '') 
    || ($('textarea').val() === 'Enter comments here.')); 

的爆炸符號是一個不;它反轉邏輯,如果任何條件成功則返回false,如果它們中的任何一個都不成功,則返回true。

+3

嗯,我認爲邏輯與OP想要的相反。固定,我明白了。 '('#email')。val()!=''&& $('#name')。val()!=''&& $('textarea')。val() !=='在此輸入評論')' – 2012-03-23 17:37:51

+0

正確的你是...... OP的良好運動。 – 2012-03-23 17:44:11

+0

完全不是我所要求的,但它是我所需要的。謝謝! – BrianP 2012-03-23 17:53:00

3

你可以用這一個班輪做到這一點:

$('form').submit(function(){ 
    if ($('#email').val() == '' || $('#name').val() == '' || $('textarea').val() === 'Enter comments here.') return false; 
});​ 
0
$('form').submit(function(){ 
if ($('#email').val() == '' || $('#name').val() == '' || $('textarea').val() === 'Enter comments here.') { 
    return false; 
} }); 
1

「最佳」和「最短」不一定相同。我相信「最好」的解決方案通常是最具可讀性的。考慮你的例子,你可以使用類似的東西(沒有if要求):

$('form').submit(function(){ 
    var emailSet = $('#email').val() != ''; 
    var nameSet = $('#name').val() != ''; 
    var placeholderReplaced = $('textarea').val() !== 'Enter comments here.'; 
    return emailSet && nameSet && placeholderReplaced; 
}); 
0

試試這個。

return !$('#email').val() 
     || !$('#name').val() 
     || $('textarea').val() !== 'Enter comments here.'; 
0

你可以做這樣的事情:

$("form").submit(function() { 
    var checkValue = function (selector, value) { 
     return $(selector).val() == value; 
    }; 

    return checkValue("#email", "") 
     && checkValue("#name", "") 
     && checkValue("textarea", "Enter comments here."); 
}); 

前面已經提到的,你應該多想想你的代碼的可讀性和可維護性,而不僅僅是規模。