2013-01-08 5 views
3

jquery를 사용하여 제출하는 동안 양식 작업을 다른 링크로 변경하려고합니다. 나는이 작업을 얻을 수없는 것 비록jquery를 통해 양식 작업을 변경할 수 없습니다.

자바 스크립트

$(document).ready(function(){ 
    $("form[name='search']").submit(function(e){ 
     var submit=$(this); 
     submit.attr('action','?search='+submit.find("input[name='tsearch']").val()); 
    }); 
}); 

HTML/PHP

<form name="search" method="post"> 
      <input class="inputbox" type="text" name="tsearch" value="<?php echo $text_search; ?>" /> 

: 다음 코드를 참조하시기 바랍니다. 여기에 도움을 주시면 감사하겠습니다.

+0

는 그 무한 루프 믿습니다! – Alexander

+0

예 알렉산더. 그것은 무한 루프입니다. e.preventDefault()는 필요하지 않았습니다. 그냥 할 일을 추가하십시오. – Lawrence

답변

2

다음은 작업 예입니다. 양식을 다시 제출하면됩니다.

편집 : 고정 가능성이 무한 루프

$(function(){ 

    var submitted = false; 
    $('form').submit(function(e){ 

    if (submitted == true) { 

     return; 

    } 
    e.preventDefault(); 
    var action = $(this).attr('action'); 

    alert(action); 

    $(this).attr('action', 'two.php'); 
    action = $(this).attr('action'); 

    alert(action); 

    submitted = true; 
    // resubmit the form 
    $(this).submit(); 

    }); 

}); 
+0

무한 루프가 명확하게 보이지 않습니까? – Alexander

+0

지금 해봐. 감사. – Lawrence

+0

@Alexander - 고정 무한 루프 – mynewaccount

1

코드가 양호한 것 같습니다. 이 작업을 수행하기 위해 시도 할 수있는 몇 가지 사항이 있습니다.

  1. 스크립트가 페이지에 들어갔습니다되어 있는지 확인이 확인하는 한 가지 방법은 크롬 디버거의 '소스'탭을 사용하고 HTML 헤드 섹션에서 다른 파일을 검색하는 것입니다

  2. jQuery를 포함시킨 후에 데이터 테일 스크립트를 포함 시켰는지 확인하십시오.

  3. jQuery가 제대로 포함되어 있는지 한 번만 확인하십시오.

  4. jQuery 충돌에주의하십시오. $를 오버라이드하는 다른 라이브러리가 있으므로 $가 jQuery의 별칭이 아니기 때문에 코드가 작동하지 않습니다. jQuery.noConflict()을 사용하면 동일한 변수 $를 사용하는 페이지의 다른 라이브러리와의 충돌을 피할 수 있습니다.

  5. alert('?search='+submit.find("input[name='tsearch']").val()) 원하는 값을 얻고 있는지 확인하십시오. http://jsfiddle.net/RmKDT/4/

    당신은 행동이 변화하고 있다는 경고로 볼 수 있습니다 :

+0

안녕 Dasun, 긍정에 감사드립니다. – Lawrence

관련 문제