2011-09-14 4 views
1

양식 제출 작업에 문제가 있습니다. 나는 폼의 작업 속성을 동적으로 변경하기 위해 preventDefault 을 사용하고 있지만, 버튼을 클릭하면 아무 것도하지 않고 아이디어가 부족합니다. 이 될 수 있습니다. 누구든지 모양을 가지고 내가 잘못 간 곳을 가르쳐 주시겠습니까?jQuery가 작동하지 않는 양식 제출

JS :

여기서 코드의

  $j('select[id=subtype]').live('change',function(){     
      var stype = $j(this).val(); 
    var styp_pos = $j.inArray(stype, styp_id_arr); 
    var styp_url = styp_url_arr[styp_pos]; 
    $j('input[id=styp_url]').val(styp_url); 
     }); 


      $j('button[id=frm_submit]').click(function(event){ 
    event.preventDefault(); 
    var full_url = typ_url + '-' + styp_url + '.html'; 
    alert(full_url); 
    $j('form[id=type_sel_form]').attr("action", full_url); 
    $j('form[id=type_sel_form]').submit(); 

}); 

HTML :

<form id="type_sel_form" name="type_sel" class="stsel_form" action="subtype.php" method="post"> 
... 
<button id="frm_submit" type="submit" class="st_button">View</button> 
</form> 

EDIT : 제 버전 오타 수정 구비하고 방화범 통해 코드를 실행할 때 후, typ_url이 정의되지 않았다는 오류 메시지가 나타납니다. 제출하기 전에 실행되는 액션 (JS 코드의 첫 번째 부분) 중에이를 정의했습니다. 버튼을 클릭해도 아무런 변화가없는 이유가 될 수 있습니까?

$j.('form[id=type_sel_form]').attr("action", full_url); 
$j.('form[id=type_sel_form]').submit(); 

속으로 :

답변

2

별칭이 $에서 $j으로 변경되었다고 가정합니다. 이 두 라인 또한 단지 id$('#id')가 충분히 제공

$j('#type_sel_form').attr("action", full_url); 
$j('#type_sel_form').submit(); 

$j.를 제거합니다.

전체 예제 : 수정

$j('#frm_submit').click(function(event){ 
    event.preventDefault(); 
    var full_url = typ_url + '-' + styp_url + '.html'; 
    alert(full_url); 
    $j('#type_sel_form').attr("action", full_url); 
    $j('#type_sel_form').submit(); 
}); 
+0

오타를 찾아 주셔서 감사합니다. 나는 그것을 정정하고 이에 따라 질문을 편집했다. – Argoron

+0

첫 번째 함수 내에 정의 된 변수는 두 번째 함수에서 볼 수 없습니다. jsfiddle.net에서하고 싶은 일의 예를 들려주십시오. 그렇지 않으면 첫 번째 함수 위로 이동하여 변수를 전역으로 만들 수 있습니다. 그러나 이것은 코드 냄새 일 수 있습니다. –

+0

변수 정의 문제가있는 다른 게시물을 조사하여 해결책을 찾았습니다. "문서 준비"외부의 변수를 "= null"로 선언 한 다음 위와 같이 다시 선언하면 이제 작동합니다. 나를 옳은 길에 올려 줘서 고마워! – Argoron

0

변경 사전에 대단히

덕분에

$j('form[id=type_sel_form]').attr("action", full_url); 
$j('form[id=type_sel_form]').submit(); 

는 추가 점이 있습니다.

+0

오타, 감사합니다. – Argoron

관련 문제