JQuery проверяет один вход и требует две строки Имя и Фамилия - PullRequest
1 голос
/ 12 октября 2011

Я использую регистрационную форму, которая просит пользователей ввести свое полное имя в одно поле ввода. Затем класс php анализирует их имя и фамилию и вставляет их в нашу базу данных. Я только что узнал, что наша система выставления счетов не любит получать только имя, поэтому мне нужно проверить поле формы и убедиться, что введены две строки. Это скрипка основного ввода с проверкой, но я не очень хорош и пишу правило для проверки двух строк. Любая помощь будет оценена

Спасибо

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

Ответы [ 7 ]

6 голосов
/ 12 октября 2011

Вы можете попробовать с:

$(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/

2 голосов
/ 12 октября 2011
if($('#cname').val().split(' ').length >= 2)
{
    ...
}
1 голос
/ 12 октября 2011

сторона клиента:

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

сторона сервера:

if( count( explode(' ', $_POST['name_field']) ) == 2 ){
 //your code...
}
0 голосов
/ 30 июля 2018

Два слова не обязательно сработают, если у пользователя есть фамилия из двух слов, например «Джереми фон Мортон» или что-то в этом роде. Или, если на этикетке написано «Полное имя», пользователь может также ввести свое второе имя. Я хотел бы показать пользователю примечание, что имя и фамилия требуются. Я бы предложил разделить имя, а затем объединить последние два вместе в случае фамилии из двух или нескольких слов. Тогда есть также ситуация, когда имя пользователя имеет несколько слов, таких как «Мэри Энн». Именно поэтому имя разделяется на несколько полей.

0 голосов
/ 25 февраля 2015

Вот как я это сделал:

Примечание : разрешены только два слова, не больше, не меньше.

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,
},

Примечание : Я не знаю Regex, если кто-то может сделать это с Regex, пожалуйста, дайте мне знать ...

0 голосов
/ 17 апреля 2013

объединяющие идеи от 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"});
0 голосов
/ 12 октября 2011

Проверьте 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"});

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...