2012-12-03 6 views
0

사소한 문제가 있지만 꼭 찾지 못했습니다. 어쩌면 당신 중 하나가 여기에서 나를 도울 수 있습니다.자바 스크립트 양식이 작동하지 않습니다.

자바 스크립트

function white_space(field) 
    { 
    field.value = field.value.replace(/^\s+/, ""); 
    } 
    function validate(){ 
    var formname=document.reg_form; 
    var fname=formname.fname.value; 
    var mess=""; 

    var uname=formname.prodName.value; 
    if(uname==""){ 
    mess= mess+"User Name cannot be blank\n"; 

    } 
    var pass=formname.prodPrice.value; 
    if(pass==""){ 
    mess= mess+"Password cannot be blank\n"; 
} 

if(mess){ 
    alert(mess); 
    return false; 

    } 
} 

HTML 양식

<form class="form-signin" action="#" onSubmit="return validate();" name="reg_form"> 
    <h2 class="form-signin-heading">Sign-In</h2> 
    <input type="text" class="input-block-level" name="prodName" placeholder="Email address" onKeyPress="white_space(this)"> 
    <input type="password" class="input-block-level" name="prodPrice" placeholder="Password" onKeyPress="white_space(this)"> 
    <label class="checkbox"> 
     <input type="checkbox" value="remember-me"> Remember me 
    </label> 


    <button class="btn btn-large btn-primary" type="submit">Sign in</button> 
    </form> 

오류

enter image description here

브라우저에 빈 문자열 오류가 표시되지 않습니다.

+2

어디 좋은 반면 작동하지 않습니까? 그것은 경고하지만 양식 제출을 중단하지 않습니까? 전혀 경고하지 않습니까? 어떤 형태로든 양식을 제출합니까? 어떤 방식 으로든 디버깅을 시도하십시오 - 진행 상황 등을 추적하기 위해 Javascript 전체에 경고를 배치하십시오. Javascript에서 발생하는 오류를 확인하려면 브라우저의 콘솔을 살펴보십시오. – Ian

답변

1

이 줄

var fname=formname.fname.value; 

던져 오류 fname에 어떤 요소가 양식에 없기 때문에 실행 유효성 검사 기능은, 그것을 언급 당신은 http://jsbin.com/oxawil/1

+1

'fname'은 코드에서 더 이상 사용되지 않습니다. – dzavala

+0

예, 이전에 사용한 양식에서 제거되지 않은 것 같습니다. 내 생각에 – dmi3y

+0

예, 다른 양식에서 제거되었습니다. – AppSensei

0

동작이 바람직하지 않다는 것을 모르는 경우 (사용자가 말하지 않았 음), 유효성 검사 함수가 성공하면 긍정적 인 반환 값이 부족하다는 것을 알 것입니다. 코드가 끝이 없습니다.

+0

빈 문자열이 있으면 브라우저가 팝업되지 않습니다. – AppSensei

0

html의 일부를 쉽게 선택할 수 있도록 jQuery를 사용할 수 있습니다. 이 해결책을 확인하려면 jsFiddle을 확인하십시오.

자바 스크립트의 값을 확인하는 것이 안전하지 않으며 보안 수준에서 값이 올바른 것으로 가정 할 때주의하시기 바랍니다. 그래서 입력이 valide 인 경우 폼을 제출하고 리턴하는 것이 더 일반적입니다. 귀하의 경우

$.ajax('url', function(json) { 
    var msg = ''; 
    switch(json.status) { 
     case 'name': 
      msg += 'name not set'; 
      break; 
     case 'pwd': 
      msg += 'password not set'; 
      break; 
    } 
    if(msg != '') { 
     alert(msg); 
    } 
} 
관련 문제