간단한 jQuery 양식 유효성 검사 스크립트 [닫힌]


110

jQuery를 사용하여 간단한 유효성 검사 양식을 만들었습니다. 잘 작동합니다. 문제는 내 코드에 만족하지 않는다는 것입니다. 동일한 출력 결과로 코드를 작성하는 다른 방법이 있습니까?

$(document).ready(function(){

$('.submit').click(function(){
    validateForm();   
});

function validateForm(){

    var nameReg = /^[A-Za-z]+$/;
    var numberReg =  /^[0-9]+$/;
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

    var names = $('#nameInput').val();
    var company = $('#companyInput').val();
    var email = $('#emailInput').val();
    var telephone = $('#telInput').val();
    var message = $('#messageInput').val();

    var inputVal = new Array(names, company, email, telephone, message);

    var inputMessage = new Array("name", "company", "email address", "telephone number", "message");

     $('.error').hide();

        if(inputVal[0] == ""){
            $('#nameLabel').after('<span class="error"> Please enter your ' + inputMessage[0] + '</span>');
        } 
        else if(!nameReg.test(names)){
            $('#nameLabel').after('<span class="error"> Letters only</span>');
        }

        if(inputVal[1] == ""){
            $('#companyLabel').after('<span class="error"> Please enter your ' + inputMessage[1] + '</span>');
        }

        if(inputVal[2] == ""){
            $('#emailLabel').after('<span class="error"> Please enter your ' + inputMessage[2] + '</span>');
        } 
        else if(!emailReg.test(email)){
            $('#emailLabel').after('<span class="error"> Please enter a valid email address</span>');
        }

        if(inputVal[3] == ""){
            $('#telephoneLabel').after('<span class="error"> Please enter your ' + inputMessage[3] + '</span>');
        } 
        else if(!numberReg.test(telephone)){
            $('#telephoneLabel').after('<span class="error"> Numbers only</span>');
        }

        if(inputVal[4] == ""){
            $('#messageLabel').after('<span class="error"> Please enter your ' + inputMessage[4] + '</span>');
        }       
}   

});

3
예, jquery 유효성 검사 스크립트를 사용하여 더 나아질 수 있습니다.
Devang Rathod 2013

방법을 보여줄 수 있습니까? 그들은 코드를 쓰는 것이시를 쓰는 것과 같다고 말합니다. 코드를 최적화하고 싶습니다.
jhedm 2013

10
codereview.stackexchange.com - 당신이 찾고있는 무엇을
알렉산더

1
HTML5 양식 유효성 검사를 사용할 수 있습니다.$('form')[0].checkValidity()
niutech

주요 초점이 단순성이라면 valijate jquery 플러그인이 유망합니다. 시작 플러그인입니다. 하지만 흥미로운 검증 방법을 사용합니다. 여기에 가이드 링크가 있습니다. valijate.com/Docs.php
bula

답변:


300

다음과 같이 jQuery Validate 플러그인 을 간단히 사용할 수 있습니다 .

jQuery :

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            field1: {
                required: true,
                email: true
            },
            field2: {
                required: true,
                minlength: 5
            }
        }
    });

});

HTML :

<form id="myform">
    <input type="text" name="field1" />
    <input type="text" name="field2" />
    <input type="submit" />
</form>

데모 : http://jsfiddle.net/xs5vrrso/

옵션 : http://jqueryvalidation.org/validate

방법 : http://jqueryvalidation.org/category/plugin/

표준 규칙 : http://jqueryvalidation.org/category/methods/

additional-methods.js파일에서 사용할 수있는 선택적 규칙 :

maxWords
minWords
rangeWords
letterswithbasicpunc
alphanumeric
lettersonly
nowhitespace
ziprange
zipcodeUS
integer
vinUS
dateITA
dateNL
time
time12h
phoneUS
phoneUK
mobileUK
phonesUK
postcodeUK
strippedminlength
email2 (optional TLD)
url2 (optional TLD)
creditcardtypes
ipv4
ipv6
pattern
require_from_group
skip_or_fill_minimum
accept
extension

18

이를 위해 jquery 유효성 검사기를 사용할 수 있지만이를 위해 jquery.validate.js 및 jquery.form.js 파일을 추가해야합니다. 유효성 검사기 파일을 포함시킨 후 다음과 같이 유효성 검사를 정의하십시오.

<script type="text/javascript">
$(document).ready(function(){
    $("#formID").validate({
    rules :{
        "data[User][name]" : {
            required : true
        }
    },
    messages :{
        "data[User][name]" : {
            required : 'Enter username'
        }
    }
    });
});
</script>

당신은 볼 수 있습니다 required : true 정의 할 수있는 이메일 등의 많은 속성이 같은 email : true 번호가 number : true


3
jQuery 유효성 검사기는 좋지만 새로운 HTML5 유효성 검사 기능을 고려하는 유효성 검사기가 훨씬 더 좋다고 생각합니다 (예 : ericleads.com/h5validate) .
Matt Browne 2013

@MattB., 들어 본 적이 없지만 jQuery Validate 플러그인은 HTML5 기능도 고려 하지만 두 가지를 함께 사용해야하는 이유는 확실하지 않습니다.
Sparky 2013

1
Devang 은 표시된 코드를 사용할 필요jquery.form.js없습니다 .
Sparky 2013

@Sparky 유효성 검사 메시지에 대해 정말 마음에 드는 특정 미학을 이미 설계하지 않은 경우 HTML5를 지원하는 브라우저가 유효성 검사 메시지를 기본 방식으로 표시하도록 허용하는 것이 더 좋으며 유효성 검사 플러그인은 오류 메시지 표시를위한 대체 수단으로 만 사용됩니다. 이전 브라우저 및 유효성 검사 논리의 경우 HTML5는 지원하지 않습니다 (추가 자바 스크립트없이). 그러나 이것은 무엇보다 나의 개인적인 선호도입니다.
Matt Browne 2013

1
@MattB., 일반적으로 jQuery를 사용하는 사람들은 브랜드마다 크게 다른 브라우저 기능에서 벗어나 브라우저 간 일관성을 추구합니다. 또한 엄청난 지원 기반이있는 인기있는 플러그인을 선호 하며 개발자가 jQuery 팀의 일원 이라면 IMO가 더 좋습니다.
Sparky 2013
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.