Javascript JQuery将值选择到变量中
我已经看了所有的地方,不明白为什么这个代码不起作用 当下拉列表设置为值“3”或“4”时,应在下拉列表下方弹出另一个字段。 有什么想法吗? 更改此项:Javascript JQuery将值选择到变量中,javascript,jquery,Javascript,Jquery,我已经看了所有的地方,不明白为什么这个代码不起作用 当下拉列表设置为值“3”或“4”时,应在下拉列表下方弹出另一个字段。 有什么想法吗? 更改此项: var val = $('#event_options_id option:selected').html(); 致: 首先,您需要像前面指出的那样调用.val() var val = $('#event_options_id option:selected').val(); 然后根据您正在使用的选择器,您需要在val上使用parseInt
var val = $('#event_options_id option:selected').html();
致:
首先,您需要像前面指出的那样调用.val()
var val = $('#event_options_id option:selected').val();
然后根据您正在使用的选择器,您需要在val上使用parseInt()
,使其成为这样的数字
if ($.inArray(parseInt(val,10), arr) > -1) {
在定义数组时,还有一个额外的逗号
完整工作代码
$(document).ready(function() {
$('#event_options_id').change(function() {
$('.container_add_form').remove();
var val = $('#event_options_id option:selected').val();
var arr = [3, 4];
if ($.inArray(parseInt(val,10), arr) > -1) {
$('<input type="hidden" name="age_required" id="age_required" value="yes" /><div class="container_add_form"><p class="text_content">Please enter your age for grouping purposes.<br /><input name="age" type="text" id="age" size="3" /></p></div>').fadeIn('slow').appendTo('.add_form');
}
});
});
$(文档).ready(函数(){
$('#事件_选项_id')。更改(函数(){
$('.container\u add\u form').remove();
var val=$('#事件_选项_id选项:选定')。val();
var-arr=[3,4];
if($.inArray(parseInt(val,10),arr)>-1){
$(“请输入您的年龄以便分组。
”).fadeIn('slow')。appendTo('add\u form');
}
});
});
1)使用.val()
而不是.html()
来获取选项的值
2) 您正在将字符串值与数组中的数字进行比较,这将始终失败
我更新了你的代码:
$(文档).ready(函数(){
$('#事件_选项_id')。更改(函数(){
$('.container\u add\u form').remove();
//您使用了.text(),但应该使用.val()
var val=$('#事件_选项_id选项:选定')。val();
var-arr=[3,4];
/*
另一个问题是没有将值解析为整数
但是您将该值与整数数组进行比较
*/
if($.inArray(parseInt(val),arr)>-1){
$(“请输入您的年龄以便分组。
”).fadeIn('slow')。appendTo('add\u form');
}
});
});
更改这些行
var val = $('#event_options_id option:selected').val();
var arr = ["3", "4"];
要获取组合框值,必须使用“val()”而不是“html()”。
您必须将数组的元素更改为字符串。
变量val是一个字符串。inArray将尝试将元素作为字符串而不是整数来查找。很好,也许我不知道问题出在哪里。我将其放入了小提琴中,但幸运的是没有找到它。感谢您的帮助。$(“#事件_选项_id选项:已选定”)已经过时了。可能是因为我没有遵循StackOverflow的应答规则。我在StackOverflow外部创建了一个只能通过访问链接访问的答案。通常,链接是获取额外信息的资源,而不是答案本身。答案的文本应张贴在StackOverflow上。因为我看到其他人给出了很好的答案,所以我没有费心更新/完成我的答案。
var val = $('#event_options_id option:selected').val();
var arr = ['3', '4'];
$(document).ready(function() {
$('#event_options_id').change(function() {
$('.container_add_form').remove();
// you used .text() but should've used .val()
var val = $('#event_options_id option:selected').val();
var arr = [3, 4];
/*
another problem was that you didn't parse the value into an integer
but you were comparing the value to an array of integers
*/
if ($.inArray(parseInt(val), arr) > -1) {
$('<input type="hidden" name="age_required" id="age_required" value="yes" /><div class="container_add_form"><p class="text_content">Please enter your age for grouping purposes.<br /><input name="age" type="text" id="age" size="3" /></p></div>').fadeIn('slow').appendTo('.add_form');
}
});
});
var val = $('#event_options_id option:selected').val();
var arr = ["3", "4"];