从名为inputStartMonth的选择字段中选择新值时,无法让JQuery访问父表单字段'inputStart的值
奇怪的是类似的语法在同一个站点的其他地方工作。我正在使用输入的名称和类,因为我在同一页面上多次重复相同的表单(具有不同的id)。
任何建议都将不胜感激。
以下是jquery代码:
$('input[name=inputStartMonth]').change(function() {
var month = $(this).val();
$(this).parent().find('input[name=inputStart]').val(month);
});
部分HTML:
<td><input name="inputStart" type="text" autocomplete="off" value="May '96">
<div class="startDateDrop hideThis dropForm">
<select name="inputStartMonth">
答案 0 :(得分:0)
应引用属性选择器:
$('input[name="inputStartMonth"]')...
答案 1 :(得分:0)
要找到您正在寻找的元素,不是以任何方式成为您开始的select
元素的父元素,我建议:< / p>
$(this).parent().prev('input[name="inputStart"]').val(month);
此外,根据属性等于(attribute="value"]
)选择器的API文档,引用该值是必需的。
参考文献:
答案 2 :(得分:0)
您的部分html意味着select的父级不是输入的祖先,这意味着find永远不会找到它。尝试
$(this).closest('form').find('input[name=inputStart]').val(month);
此外,您正在检测名称为change
的输入上的inputStartMonth
,该输入不存在。你想要:
$('select[name=inputStartMonth]').change(function() {
var month = $(this).val();
$(this).closest('form').find('input[name=inputStart]').val(month);
});
答案 3 :(得分:0)
你有几个问题。其中一个,正如其他人所提到的,你的select的父级是div,它不是你输入的父级。其次,你的选择器使用$('input [name = inputStartMonth]')它应该是“select”而不是输入。请参阅:http://jsfiddle.net/sYFuY/