2011-02-26 4 views
1

"this"양식을 양식 처리 기능에 전달할 때 양식 입력을 가져 오는 데 문제가 있습니다.jQuery this form input

HTML :

<form onsubmit="return process_feedback(this);"> 
    <input name="ItemID" type="hidden" value="123" /> 
    <input name="Submit 1" type="submit" value="Submit" />123 
</form> 

<form onsubmit="return process_feedback(this);"> 
    <input name="ItemID" type="hidden" value="234" /> 
    <input name="Submit 2" type="submit" value="Submit" />234 
</form> 

<form onsubmit="return process_feedback(this);"> 
    <input name="ItemID" type="hidden" value="345" /> 
    <input name="Submit 3" type="submit" value="Submit" />345 
</form> 

<div id="FormSubmitStatus"></div> 

자바 스크립트 :

function process_feedback(form) { 

    var ItemID = $('form:input[name="ItemID"]').val(); 

    $('#FormSubmitStatus').html("You submitted the form for ItemID " + ItemID); 

    return false; 

} 

내가 항목 ID 변수에서 다시지고있어 모두 "정의되지 않은"입니다. http://jsfiddle.net/PottyMonster/GV3Z6/

도움을 주시면 감사하겠습니다.

답변

3

선택기의 컨텍스트로 양식 객체를 사용하십시오. 예 :

function process_feedback(form) { 

    var ItemID = $('input[name="ItemID"]', form).val(); 

    $('#FormSubmitStatus').html("You submitted the form for ItemID " + ItemID); 

    return false; 

} 

자세한 내용은 jQuery selector context documentation을 참조하십시오.

+0

감사합니다! 나는 당신이 그것을 할 수 있다는 것을 몰랐다. ..... 배울 또 다른 것. 나는 jQuery 문서를 사용하여 이와 같은 유용한 것들을 찾기가 정말 어렵다고 생각한다. –

+1

Dan의 원래 선택자 인 'form : input [name = "ItemID"]'는 ': input'표기법이 필터이기 때문에 빈 목록을 반환하고 'form input [name =]' ItemID "] '실제로 양식 내에서 입력 태그를 찾습니다. – MichaC

+1

또한이 기사에 따르면 내가 읽은 무작위로 적용하려는 노력 : http://jonraasch.com/blog/10-advanced-jquery-performance-tuning-tips-from-paul-irish $ (form) .find ('input [name = "ItemID"]')를 사용하면 성능이 약간 향상됩니다. – MichaC