2011-02-26 55 views
1

我在将“此”表单传递给表单处理函数时遇到了表单输入问题。jQuery此表单输入

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> 

的javascript:

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文档来找到像这样有用的东西。 – 2011-02-26 00:30:10

+1

另外值得注意的是,Dan的原始选择器'form:input [name ='ItemID']'正在返回一个空列表,因为':input'符号是一个过滤器,并且意味着与'form input [name =“ ItemID“]'实际上在表单中查找输入标签。 – MichaC 2011-02-26 00:33:18

+1

另外,为了应用我阅读过的随机事物,根据这篇文章:http://jonraasch.com/blog/10-advanced-jquery-performance-tuning-tips-from-paul-irish你会得到当使用$(form).find('input [name =“ItemID”]')时,性能稍微好一些。 – MichaC 2011-02-26 00:36:40