2015-04-23 32 views
2

我想確保用戶只輸入一個名字(名字,或姓氏,但不是兩個或沒有),同時確保輸入的名稱長於3個字符。如何確保用戶只輸入一個名字?

我試過這樣做,但是在將它留空並使其變爲2個字符之間存在衝突。

這是我的代碼:

if ($("#firstName").val().length > 0 && $("#lastName").val().length > 0) { 
    event.preventDefault(); 
    $("#error").slideDown().text("You may enter just first name or last name"); 
    return; 
} else if ($("#firstName").val().length <= 2 || $("#lastName").val().length <= 2) { 
    event.preventDefault(); 
    $("#error").slideDown().text("Your name have to contain at least 3 letters"); 
    return; 
} 

小提琴可以發現here

+0

名字只能是兩個字符,姓氏也是一樣。 –

回答

1

檢查空間中存在的名稱。如果存在,則用戶輸入全名

試試這個:

var name = $.trim($('#firstName').val()); 
if (name.length < 3 && name.indexOf(' ') > -1) { 
    alert("Invalid Name; Enter first name or last name only"); 
} 
0
if ($("#firstName").val().length > 0 && $("#lastName").val().length > 0) { 
    event.preventDefault(); 
    $("#error").slideDown().text("You may enter just first name or last name"); 
    return; 
} else if ($("#firstName").val().length <= 2 || $("#lastName").val().length <= 2) { 
    event.preventDefault(); 
    $("#error").slideDown().text("Your name have to contain at least 3 letters"); 
    return; 
} 

你檢查這兩個字段中輸入的。然後你檢查兩個字段是否爲< = 2。 即使只輸入了一個名稱,而另一個名稱爲空,後者也是如此。 您應該檢查這樣

if ($("#firstName").val().length > 0 && $("#lastName").val().length > 0) { 
    event.preventDefault(); 
    $("#error").slideDown().text("You may enter just first name or last name"); 
    return; 
} else if (!($("#firstName").val().length > 2 || $("#lastName").val().length > 2)) { 
    event.preventDefault(); 
    $("#error").slideDown().text("Your name have to contain at least 3 letters"); 
    return; 
} 
+0

謝謝。有效。 –

+0

Karthiks版本實際上應該更好,因爲它更好地區分案例 – user3154108

+0

謝謝。我會很高興,如果你能告訴我爲什麼如果我輸入數字我的「名字」例如我得到錯誤(因爲我做「isNumeric」),但如果我把數字字母(例如「asdahsd123123」),它通過。謝謝 –

0

請參閱本fiddle 我希望這是你在尋找什麼,

$("form").submit(function (event) { 


    // TODO 1: Make sure age has only digits 

    // TODO 2: Make sure names do not have digits 

    // TODO 3: Make the email is valid (has @ and . inside of them - do not use RegEx, use indexOf) 

    // TODO 4: Make sure each name is longer than 2 chars if the input is not empty 
    if (!$("#firstName").val() && !$("#lastName").val()) { 
     event.preventDefault(); 
     $("#error").slideDown().text("You may enter first name or last name"); 
     return; 
    }else if ($.isNumeric($('#firstName').val()) || $.isNumeric($('#lastName').val())) { 
     event.preventDefault(); 
     $("#error").slideDown().text("Your name can contain letters only"); 
     return; 
    }else if (!($("#firstName").val().length > 2 || $("#lastName").val().length > 2)) { 
    event.preventDefault(); 
    $("#error").slideDown().text("Your name have to contain at least 3 letters"); 
    return; 
} 

    if ($("#email").val().indexOf("@") < 0 || $("#email").val().lastIndexOf(".") < 0) { 
     event.preventDefault(); 
     $("#error").slideDown(); 
     $("#error").text("Your Email is not valid."); 
     return; 
    } 
    if ($("#age").val() == "" || $("#age").val() < 18) { 
     event.preventDefault(); 
     $("#error").slideDown().text("You must be over 18 to register"); 
     return; 
    } 


    if (!$.isNumeric($('#age').val())) { 


     event.preventDefault(); 
     $("#error").slideDown().text("Your age can contain numbers only"); 
     return; 
    } 




    if (!$("#terms").is(":checked")) { 
     event.preventDefault(); 
     $("#error").slideDown().text("Please accept terms"); 
     return; 
    }  


    $("#error").slideDown().text("we can now submit the form"); 




     // TODO 5: Make sure the user inputed excacly one name (first name, or last name, but not both or non) 
    }); 
1

嗨你應該改變你的病情點點。它有點冗長,但達到了目的。

if ($("#firstName").val().length > 0 && $("#lastName").val().length > 0) { 
    event.preventDefault(); 
    $("#error").slideDown().text("You may enter just first name or last name"); 
    return; 
} 

if($("#firstName").val().length > 0){ 
    if ($("#firstName").val().length <= 2){ 
    event.preventDefault(); 
    $("#error").slideDown().text("Your first name have to contain at least 3 letters"); 
     return; 
    } 
} 

if($("#lastName").val().length > 0){ 
    if ($("#lastName").val().length <= 2){ 
     event.preventDefault(); 
     $("#error").slideDown().text("Your last name have to contain at least 3 letters"); 
     return; 
    } 
} 
相關問題