jQuery验证单个输入并需要两个字符串名和姓

时间:2011-10-12 10:54:20

标签: jquery jquery-validate

我使用一个注册表单,要求用户在一个输入字段中输入他们的全名。然后php类解析它们的名字和姓氏并插入我们的数据库。我刚刚发现我们的结算系统不喜欢只接收名字所以我必须验证表单字段并确保输入两个字符串。这是一个基本输入与验证的小提琴,但我不好并编写规则来检查两个字符串。任何帮助将不胜感激

由于

http://jsfiddle.net/peter/4X3mx/1/

7 个答案:

答案 0 :(得分:6)

您可以尝试:

$(document).ready(function() {
    $("#btn").click(function(e) {
        if (/\w+\s+\w+/.test($("#cname").val())) {
            alert("good");
        } else {
            alert("bad");
        }

        e.preventDefault();
    });

});

小提琴:http://jsfiddle.net/YrFfG/

答案 1 :(得分:2)

if($('#cname').val().split(' ').length >= 2)
{
    ...
}

答案 2 :(得分:1)

客户方:

if( input.value.split(' ').length == 2 ){
 //your code...
}

服务器端:

if( count( explode(' ', $_POST['name_field']) ) == 2 ){
 //your code...
}

答案 3 :(得分:0)

检查http://jsfiddle.net/4X3mx/21/以获取解决方案。我也是jQuery noob,所以这可能不是最好的解决方案。

$(document).ready(function(){
  jQuery.validator.addMethod("twostring", function(value, element) { 
      return value.indexOf(' ') == -1? false: true; 
    }, jQuery.format("Please enter the correct value"));
  $("#commentForm").validate();
  $('#cname').rules("add", {required:true, minlength: 2, method: "twostring"});

});

答案 4 :(得分:0)

来自JoseTomasTocino和spicavigo的加入想法可能会更好:

jQuery.validator.addMethod("lastname", function(value, element) { 
    if (/\w+\s+\w+/.test(value)) {
        return true;
    } else {
        return false;
    }
    e.preventDefault();
}, jQuery.format("Please enter the correct value"));

$("#commentForm").validate();
$('#cname').rules("add", {required:true, minlength: 2, method: "lastname"});

答案 5 :(得分:0)

如果用户使用两个单词的姓氏(例如“ Jeremy Von Morton”)或类似的名称,则两个单词不一定有效。或者,如果标签上显示“全名”,则用户也可以输入中间名。我会向用户显示一个提示,要求您的名字和姓氏。如果有两个或多个单词的姓氏,我建议先拆分名称,然后再将后两个名字合并在一起。然后还存在用户名字具有多个单词(例如“ Mary Ann”)的情况。这通常就是为什么将名称分成多个字段的原因。

答案 6 :(得分:-1)

我就这样做了:

注意:它只允许两个字,不多也不少。

jQuery.validator.addMethod(
    "withTwoStrings",
    function(value, element) {
            howManyWords = value.trim();
            howManyWords = howManyWords.replace(/\s{2,}/g, ' '); //remove extra spaces
            howManyWords = howManyWords.split(' ');

            if(howManyWords.length == 2){
                return true;
            }
            else{
                return false;
            }
        e.preventDefault();
    },
    "Please Include First and Last Name. Thanks... :)"
);

在Rules对象中:

fieldName: {
      withTwoStrings: true,
},

注意:我不知道正则表达式,如果有人可以使用正则表达式,请告诉我......