2011-10-20 93 views
0

如何循环显示具有特定名称的所有表单输入并将其设置为指定值?使用jquery将某些表单输入设置为某些值

我试过这jsfiddle,我无法让它工作。 http://jsfiddle.net/qvcA6/

$(document).ready(function() { 
    $("#link-1").click(function() { 

$('[name=price]','#myform').val('0.00'); 
     }); 
}); 

编辑:我不认为这会事,但对于表单字段名称的数组键不占。所以你的所有例子都可以工作,但是当我把键放在字段名称中时,它们会中断。任何人都知道如何去解答密钥?更新的jsfiddle - >http://jsfiddle.net/qvcA6/8/

+0

我自己造就的侧面问题:这不会导致提交表单时出现问题吗?通常,表单中的名称是唯一的,用于创建请求参数。 –

+1

格雷格,在这种情况下价格是一个数组。 –

回答

1

更新了jfiddle你http://jsfiddle.net/qvcA6/1/ 有两个问题。

1)属性值需要用引号包围。

2)您输入的名称是 '价格[]' 而不是 '价格',使jQuery选择没有匹配

+0

那为那个实例工作。我认为当价格输入有一个关键时它会起作用。但事实并非如此。考虑到所有的价格输入而不考虑其关键是否是非常复杂的? http://jsfiddle.net/qvcA6/8/ – David

+0

不,不会太难。你可以使用下面的代码:'$('[name^=“price”]','#myform')'^ ='是'starts with'选择器,因此它将得到所有具有以字价格。这应该适合你。 –

+0

完美!谢谢! – David

0

您输入的名称是price[]price,也将是一个长期的形式更有效expecially指定标签名称中使用属性时,等于选择。

$('#myform input[name="price[]"]').val('0.00'); 

这里是一个链接修改后的小提琴http://jsfiddle.net/qvcA6/7/

1

这里有一个fiddle

$(document).ready(function() { 
    $("#link-1").click(function(e) { 
     $('#myform').find('input[name="price[]"]').val('0.00'); 
     e.preventDefault(); // use prevent default instead of inline js on the link. 
    }); 
}); 
+0

感谢您的e.preventDefault();招。不知道那个! upvoted! – David

0

见我jsFiddle

$(function() { 
    $("#link-1").click(function() { 
     $("input[name^=price\\[]", "#myform").val('0.00'); 
     return false; 
    }); 
});