我尝试过使用每个和grep,但我不认为这些是这个实例中需要的正确事件
这就是我的开始:
var $children = $("select[name^='children'] option:selected")
.map(function () {
return $(this).val();
}).get();
返回:[“1”,“”,“”,“”,“1”,“1”,“1”]
$("#room").on("change", $children, function(){
alert($(this).val());
});
这会返回控制台中的空白区域(即一条空行的白线),我对这也是什么感到困惑。
编辑:
它是容器中的3个字段之一,用户可以将此容器克隆最多4次。这里只有一个领域,即有问题的领域。
我基本上只想回报一个号码。
HTML:
<select name="children1" id="children1">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
答案 0 :(得分:1)
每当用户点击任何子字段时,我就会想要一些 要运行的代码。
我认为这意味着,只要select的值发生变化,获得它的值,并且克隆它们,我会假设它们是动态插入的:
$(document).on('change', 'select[name^="children"]', function() {
console.log( this.value );
});
答案 1 :(得分:0)
这将给出所选的选项
$('select[name^="children"] option:selected').text();
答案 2 :(得分:0)
尝试
var selected = $("select[name^='children']")
.map(function () {
return this.value.length ? this.value : undefined;
}).get();
演示:Fiddle
答案 3 :(得分:0)
听起来你想要获得用户选择的下拉值。要在选择值时执行此操作,您需要将change
事件处理程序附加到下拉列表。
示例:强>
$("select[name^='children']").change(function() {
var selectedValue = $(this).val();
alert(selectedValue);
});
这也适用于多个下拉菜单。请参阅fiddle。
注意:强>
在这种情况下您也可以使用.text()
,但建议您使用.val()
,因为它适用于所有输入元素,而.text()
有时可能会给您不正确的结果,因为它返回匹配元素及其后代的组合文本内容。
答案 4 :(得分:0)
看看这里:
<强> CODE 强>
$(document).on("change", "select", function(){
alert($(this).val() + " - " + $(this).attr("id"));
});
每次选择一个选项时都会触发警报,即使在新“克隆”的选择上也是如此。请参阅小提琴,了解一个工作示例: