我有一个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');
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){
alert(this); // NEVER HAPPENS, so it's never finding all the inputs
var key = $(this).attr('name');
var val = $(this).val();
data[key] = val;
});
我在第一行尝试了各种各样的事情:
$(':input',$(form)).each(function(index){
$(':input',form).each(function(index){
$(form+' :input').each(function(index){
没有一个能让它发挥作用。基本上,它根本不使用对象来选择表单元素中的隐藏输入。
tl; dr 一切正常,除了:输入选择器在访问表单var时不起作用。
答案 0 :(得分:0)
只是在没有看到你的标记的情况下在黑暗中刺伤但是$(“形式:输入”)应该有效。
请注意,它全部用引号