Jquery :输入选择器找不到表单的任何内容
我有一个img,当点击时,它指向一个使用自定义属性的表单,然后该表单通过.post提交它的隐藏输入 代码如下:Jquery :输入选择器找不到表单的任何内容,jquery,forms,input,selector,Jquery,Forms,Input,Selector,我有一个img,当点击时,它指向一个使用自定义属性的表单,然后该表单通过.post提交它的隐藏输入 代码如下: $("img.imgsubmit").live('click',function(){ var msg = $(this).attr('title'); var r=confirm(msg+'?'); if (r==false){return false;} var form = '#'+$(this).attr('imgsubmit'); va
$("img.imgsubmit").live('click',function(){
var msg = $(this).attr('title');
var r=confirm(msg+'?');
if (r==false){return false;}
var form = '#'+$(this).attr('imgsubmit');
var url = $(form).attr('action');
var output = OutputName($(form).attr('output'));
$("#"+output).html('<img src="images/ajax-loader.gif" alt="Working..." />');
// get post values
var data = {}; // define data object
$(':input',this).each(function(index){
alert(this); // NEVER HAPPENS
var key = $(this).attr('name');
var val = $(this).val();
data[key] = val;
});
// post
$.post(url,data, function(html) {
$("#"+output).html(html).slideFadeShow("fast");
});
return false;
});
我试过了第一行的各种方法:
$(':input',$(form)).each(function(index){
$(':input',form).each(function(index){
$(form+' :input').each(function(index){
没有一个能让它发挥作用。基本上,在表单元素中选择隐藏的输入根本不适用于对象
tl;dr一切正常,除了:输入选择器在访问表单变量时不工作。只是在黑暗中摸索,看不到您的标记,但是$(“表单:输入”)应该可以工作
请注意,所有内容都在引号中建议在
过滤器中使用:input
,以获得最佳性能。出于这个原因,您可以尝试$(“form*”).filter(“:input”)
。我以前没有读过这个,谢谢kojiro的提示。(投票结果向上)编辑:根据kojiro的建议删除了第二个建议,这也是因为我能够测试我提出的第一个建议并且它有效。我想问题可能在这里:var form='#'+$(this.attr('imgsubmit');您确定表单变量实际上正在捕获表单吗。尝试为表单提供一个id,并使用如下内容:var form=$('form#myFormId');
$(':input',$(form)).each(function(index){
$(':input',form).each(function(index){
$(form+' :input').each(function(index){