Jquery 如何确保用户只输入一个名称?

Jquery 如何确保用户只输入一个名称?,jquery,input,Jquery,Input,我希望确保用户只输入一个名称(名字或姓氏,但不能同时输入或不输入),同时确保输入的名称长度超过3个字符 我试过这样做,但在让它空着和让它多做两个字符之间有冲突 这是我的代码: if ($("#firstName").val().length > 0 && $("#lastName").val().length > 0) { event.preventDefault(); $("#error").slideDown().text("You may ent

我希望确保用户只输入一个名称(名字或姓氏,但不能同时输入或不输入),同时确保输入的名称长度超过3个字符

我试过这样做,但在让它空着和让它多做两个字符之间有冲突

这是我的代码:

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;
}
if($(“#firstName”).val().length>0&$(“#lastName”).val().length>0){
event.preventDefault();
$(“#错误”).slideDown().text(“您可以只输入名字或姓氏”);
返回;

}else if($(“#firstName”).val().length检查名称中是否存在空格。如果存在空格,则用户已输入全名

试试这个:

var name = $.trim($('#firstName').val());
if (name.length < 3 && name.indexOf(' ') > -1) {
    alert("Invalid Name; Enter first name or last name only");
}
var name=$.trim($('#firstName').val());
if(name.length<3&&name.indexOf(“”)>-1){
警报(“名称无效;仅输入名字或姓氏”);
}
请看这个 我希望这正是你想要的

$("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)
    });
$(“表单”).submit(函数(事件){
//TODO 1:确保年龄只有数字
//TODO 2:确保名称没有数字
//TODO 3:确保电子邮件有效(其中包含@和。请勿使用正则表达式,请使用indexOf)
//TODO 4:如果输入不是空的,请确保每个名称都超过2个字符
if(!$(“#lastName”).val()&&(!$(“#lastName”).val()){
event.preventDefault();
$(“#错误”).slideDown().text(“您可以输入名字或姓氏”);
返回;
}else if($.isNumeric($('#firstName').val())| |$.isNumeric($('#lastName').val()){
event.preventDefault();
$(“#错误”).slideDown().text(“您的姓名只能包含字母”);
返回;
}否则如果(!($(“#姓氏”).val().length>2 |$(“#姓氏”).val().length>2)){
event.preventDefault();
$(“#错误”).slideDown().text(“您的姓名必须至少包含3个字母”);
返回;
}
if($(“#email”).val().indexOf(“@”)<0(“#email”).val().lastIndexOf(“.”)<0){
event.preventDefault();
$(“#错误”).slideDown();
$(“#错误”).text(“您的电子邮件无效。”);
返回;
}
if($(“#age”).val()==”| |$(“#age”).val()<18){
event.preventDefault();
$(“#错误”).slideDown().text(“您必须年满18岁才能注册”);
返回;
}
if(!$.isNumeric($('#age').val()){
event.preventDefault();
$(“#错误”).slideDown().text(“您的年龄只能包含数字”);
返回;
}
如果(!$(“#条款”)是(“:选中”)){
event.preventDefault();
$(“#错误”).slideDown().text(“请接受条款”);
返回;
}    
$(“#错误”).slideDown().text(“我们现在可以提交表单”);
//TODO 5:确保用户只输入一个名字(名字或姓氏,但不能同时输入或不输入)
});

您好,您应该稍微改变一下您的状况。这有点长,但可以达到目的

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;
   }  
}
if($(“#firstName”).val().length>0&$(“#lastName”).val().length>0){
event.preventDefault();
$(“#错误”).slideDown().text(“您可以只输入名字或姓氏”);
返回;
}
if($(“#firstName”).val().length>0){
if($(“#firstName”).val().length 0){

if($(“#lastName”).val().length一个名字只能有两个字符,姓氏也是如此。Karthiks版本实际上应该工作得更好,因为它能更好地区分大小写。如果您能告诉我为什么如果我为exmaple输入数字,我的“first name”会出错(因为我输入了“isNumeric”),但如果我把字母和数字放在一起(对于exmaple“asdahsd123123”),它会通过。当字符串是字母数字时,thanksCause isNummeric会失败。它只测试字符串是否可以解释为实际数字。如果您熟悉正则表达式,则最容易测试数字,如果不熟悉,则需要为此编写一个小型解析器函数
$("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)
    });
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;
   }  
}