在某些View页面上,我有两个部分视图(它们的html是相同的)。第一个工作这个脚本,但第二个不工作。
<script type="text/javascript">
$(document).ready(function() {
$('input:radio').click(function() {
var location = $("input:checked").val();
var article_number = $("input[id=MArticleNumber]").val();
$.post("/ImportXML/DevAccEditTempTable", { location: location, article_number: article_number }, function(data) {
if ($("input[id='check']:checked").val() == 'a') {
alert("page for new device")
}
else {
window.location.href = "/" + data.redirect;
}
},"json");
});
});
</script>
尝试获取article_number时出现问题,因为我有两个带有一些id的输入框(id = MArticleNumber)。如果将第二个id更改为id = MArticleNumber1,那么有两个文章编号,但我必须传递给动作DevAccEditTempTable只有一个文章编号。
答案 0 :(得分:3)
首先,您可以使用更多的短手调用来获取具有id的元素的值(*参见下面的说明):
var article_number = $("#MArticleNumber").val();
其次,拥有相同id的元素是无效的。根据HTML规范,id必须是唯一的:www.w3.org
通过使您的ID唯一,您的问题就会消失。
(*)解释为什么你应该在jQuery中使用#selector而不是[id = ...]选择器。
$("#myElementId")
使用#id将导致一个简单的getElementById调用,这是快速而简单的。 id必须是唯一的,因此元素的类型不相关。
$("input[id=myElementId]")
要执行此查找,首先获取所有输入元素,然后根据指定的属性搜索循环查找匹配项。