2012-01-30 3 views
-2

내 jsfiddle 응용 프로그램에 문제가 있습니다. click here. 당신이 다음 텍스트 영역을 볼 바이올린을 열 때, (어떤 borwser하지만 IE에서) 다음 단계를 따르십시오양식을 제출하지 않아도됩니다.

1 : "AddQuestion"버튼을 클릭합니다 : 텍스트 영역

2에 질문을 입력 . 입력 한 질문은 아래 표에 추가됩니다.

3 : 이제 아래의 "정보 제출"버튼을 클릭 : 당신은 그냥

4 아래 표에 추가 한 텍스트 영역에서 모든 텍스트를 삭제합니다.

이제 알 수 있듯이 세부 정보를 제출하고 새 페이지로 이동하려고합니다. 이것은 테이블에 추가 된 텍스트 영역이 비어 있거나 ""있는 경우 "유효한 질문을 입력하십시오"라는 경고를 표시하는 유효성 검사 함수에 설명되어 있기 때문에 발생하지 않아야합니다. 질문이 유효하더라도 계속 진행할 것인지 묻는 확인 상자가 표시되어야합니다.

제출 버튼을 클릭하면 "myClickHandler"를 따라야하지만 왜 이렇게하지 않습니까?

+0

왜 일반 JavaScript와 jQuery를 혼합합니까? – j08691

+0

다른 php 파일에서 비슷한 유효성 검사 기능을했기 때문에 그 사용자 javascript 때문에 jquery가 포함되어 있습니다. – user1170029

답변

0

계획 A :

$("#addQuestionBtn").click(function(event) { 
    event.preventDefault(); 
    ... 
}); 

플랜 B :

$('#enter').submit(function() { 
    .... 
    return false; 
}); 

추가 "false를 반환;" 마지막

따옴표에서 :

http://api.jquery.com/submit/

이벤트 핸들러는 폼에 바인딩 할 수 있습니다 : 양식이 제출 될 때

$('#target').submit(function() { 
    alert('Handler for .submit() called.'); 
    return false; 
}); 

지금, 메시지는 경고한다. 이것은 실제 제출 전에 발생하므로 이벤트 객체에서 .preventDefault()를 호출하거나 처리기에서 false를 반환하여 제출 작업을 취소 할 수 있습니다. 다른 요소를 클릭하면 수동으로 이벤트를 실행할 수 있습니다.

0

양식 제출을 취소하려면 event.preventDefault()을 사용하십시오.

자세히 알아보기 textAreaO.length 아니요, textAreaO.value.length이 아닌 TypeError입니다.

0

validate() 함수의 textAreaO 변수에 선택 항목이 두 개 이상 포함될 수 있습니다. 각 항목을 반복하고 각각에 대한 검사를 수행하십시오.

var isValid = true; 
$(textAreaO).each(function() { 
    isValid = isValid && //insert your validation check here; 
}); 

if(!isValid) alertValidation += "\nYou have not entered a valid Question\n"; 
관련 문제