2011-11-28 2 views
0

내가 참 또는 거짓이 상태에 따라 반환 자바 스크립트 유효성 검사를 위해 다음과 같은 코드를 사용하고 작동하지 true가 돌려 여기 자바 스크립트

function fnval() 
{ 
if(document.field.value == "") 
{ 
    alert("Invalid value"); 
    return false; 
}else{ 
    return true; 
} 
} 

내 HTML입니다 자바 스크립트 블록

:

<Input type=submit name="sub" onClick="return fnval()"> 

따라서 js 블록은 필드 값이 입력되었는지 확인합니다. 그렇지 않은 경우 경고 메시지를 표시하고 false를 반환하므로 양식이 제출되지 않습니다.
그러나 값이 비어 있지 않으면 true를 반환하고 양식은 제출되지 않습니다.

사람들이 물어 본 일부 쿼리에서 양식 제출시 false가 반환되는 것을 보았습니다. 하지만 이것은 정확히 반대입니다. 현재로서는 해결책을 찾을 수 없습니다.
아무도 도와 줄 수 없나요?

+5

''요소는 '

'요소 안에 있습니까? –

+0

그리고 경고 메시지를 "보내지"마십시오.) –

+1

jquery를 사용하여 살펴야합니다. 여기에서하려고하는 것처럼 페이지의 요소로 작업하기위한 자바 스크립트 라이브러리. 'document.field'가 무엇을 반환해야할지 모르겠습니다. jquery를 살펴보십시오. jQuery가 훨씬 쉽고 브라우저 간 호환이 가능합니다. –

답변

-1

구문 오류 :

type="submit" 

하지

type=submit 
+3

브라우저에는이 문제가 없습니다. –

+1

사실, 아니요, 좋든 나쁘 든간에. –

+0

HTML 4.01에서 유효합니다. (따옴표 요구 사항은 XML에 의해 추가됩니다.) – ruakh

3

getElementsByName을 시도해보십시오


getElementsByName

function fnval() 
{ 
if(document.getElementsByName('field')[0].value == "") 
{ 
    alert("Invalid value"); 
    return false; 
}else{ 
    return true; 
} 
} 
그래도 IE를 지원하지 않습니다. 아마도 :

function fnval() 
{ 
if(findInput('field')[0].value == "") 
{ 
    alert("Invalid value"); 
    return false; 
}else{ 
    return true; 
} 
} 
function findInput(name) { 
    var elements = document.getElementsByTagName('input'), 
     length = elements.length, 
     i = 0, 
     results = []; 
    for(i; i<length; i++) { 
     if (elements[i].name === name) { 
      results.push(elements[i]); 
     } 
    } 
    return results; 
} 
+0

"getElementsByName에는 IE가 지원되지 않습니다." 그것은 나를 위해 IE9에서 작동합니다. – recursive

+0

@ 재귀, http://www.quirksmode.org/dom/w3c_core.html # t125 어쩌면 그들은 그것을 고쳤습니다. 나는 모른다. – Joe

2

양식 이름과 양식 값을 추가해야합니다. 뭔가 같이 :

<form method="post" onsubmit=""> 
Password: <input name="password" type="text" /><br /> 
</form> 

JS : HTML 이런 종류의 예를 들어

if (document.formName.fieldName.value == "") 

,

if (document.form.password.value == "") { 
    //empty 
} 
2

난 형태로 onsubmit을 사용하는 것이 좋습니다, <form ... onsubmit="return fnval()">, 시도는 것을 추가 기능의 기초에 return false을 두십시오.

0

js에서 무엇을 하든지 상관 없습니다. 하지만 폼 요소 엘리먼트의 액션 태그를 채우면 폼이 제출됩니다.