Javascript 使用JQuery在中获取值

Javascript 使用JQuery在中获取值,javascript,jquery,Javascript,Jquery,我需要获取SELECT标记的当前值。为此,我使用了$'select'.val,但它只返回默认值,并且没有更改。我能帮上忙吗 $('div#buy input').fancybox({ ajax : { type : "POST", data : { id: $('input[name="id"]').val(), count: $('#count').val() } } }

我需要获取SELECT标记的当前值。为此,我使用了$'select'.val,但它只返回默认值,并且没有更改。我能帮上忙吗

$('div#buy input').fancybox({
    ajax : {
        type    : "POST",
        data    : {
            id: $('input[name="id"]').val(),
            count: $('#count').val()
        }
    }
});

<select id="count">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
</select>
您可以使用下拉列表中的:selected选择器来获取当前选定的项目:

var selectedValue = $('#count :selected').val()
更新

这里有一个快速的工作方法:

您可以使用下拉列表中的:selected选择器来获取当前选定的项目:

var selectedValue = $('#count :selected').val()
更新

这里有一个快速的工作方法:

试试这个:

$('select option:selected').val();
试试这个:

$('select option:selected').val();
$'count'。val将返回当前选定的值。您缺少选项的值

<select id="count">
<option value="1">1</option>
<option value="2">2</option>........
$'count'。val将返回当前选定的值。您缺少选项的值

<select id="count">
<option value="1">1</option>
<option value="2">2</option>........

您是否在用户更改选择之前运行fancybox/ajax

它在这里工作得很好:


您是否在用户更改选择之前运行fancybox/ajax

它在这里工作得很好:

使用:

使用:

工作示例:


工作示例:

您选择的id是count,因此您需要执行以下操作:


$'count:selected'.val

您选择的id是count,因此您需要执行以下操作:

$'count:selected'.val

在jQuery中,$'count'.val将为id为count的元素提供当前选定的值。我怀疑您的代码示例是在用户做出选择之前运行的,这就是您获得默认值的原因。您应该在用户做出选择后的某个时间设置count属性。类似这样的方法会奏效:

var fancyboxOptions = {
    ajax : {
        type    : "POST",
        data    : {
            id: $('input[name="id"]').val(),
            count: $('#count').val()
        }
    }
}

$(document).ready(function() {
    $('div#buy input').fancybox(fancyboxOptions);
    $('#count').change(function() {
        fancyboxOptions.ajax.data.count = $('#count').val();
    });
});
这样,选项对象将在选择更改时更新。

在jQuery中,$'count'。val将为id为count的元素提供当前选择的值。我怀疑您的代码示例是在用户做出选择之前运行的,这就是您获得默认值的原因。您应该在用户做出选择后的某个时间设置count属性。类似这样的方法会奏效:

var fancyboxOptions = {
    ajax : {
        type    : "POST",
        data    : {
            id: $('input[name="id"]').val(),
            count: $('#count').val()
        }
    }
}

$(document).ready(function() {
    $('div#buy input').fancybox(fancyboxOptions);
    $('#count').change(function() {
        fancyboxOptions.ajax.data.count = $('#count').val();
    });
});


这样,选项对象将在选择更改时得到更新。

您一定是做错了什么,因为它是有效的:问题是fancybox可能在页面加载时运行,因此该值在页面加载时读取,然后它当然是默认值。当值被更改时,您必须读取它。我的脚本是最后一次加载。我想您不明白我的意思。什么时候调用$'divbuy input'.fancybox。。。?你是在uses选择值之后还是之前调用它?我使用了select just in.fancybox,而不是在你做了其他错误的事情之后,因为它工作:问题是fancybox可能在页面加载时运行,所以在页面加载时读取值,然后它当然是默认值。当值被更改时,您必须读取它。我的脚本是最后一次加载。我想您不明白我的意思。什么时候调用$'divbuy input'.fancybox。。。?你是在uses选择值之后还是之前调用它?我在.fancybox中使用了select,而不是在你不需要这些值之后。如果未设置属性,则文本将用作值。他可以只使用$'count'是正确的,但这并不是因为他缺少选项的值。值是可选的。@Felix Kling,Jamie Dixon。感谢您的澄清。$'count'。val已在不做任何修改的情况下工作。问题是这是在页面加载时执行的。@Nill on domready selected将是默认值。如果要使用选定值更新花式方框,请在更改时附加事件。然后通过获得$count.val更新您的花式盒子,您不需要这些值。如果未设置属性,则文本将用作值。他可以只使用$'count'是正确的,但这并不是因为他缺少选项的值。值是可选的。@Felix Kling,Jamie Dixon。感谢您的澄清。$'count'。val已在不做任何修改的情况下工作。问题是这是在页面加载时执行的。@Nill on domready selected将是默认值。如果要使用选定值更新花式方框,请在更改时附加事件。然后通过获得$count.val更新您的花式盒子。您的选择器有点不正确。它应该是“select:selected”,在select和:selected之间有一个空格。这不应该起作用:所选仅适用于选项元素。谢谢@FishBasketGordo,我现在已经解决了@杰米迪克森:当然,在编辑之前;计数:选择将不起作用。啊,我现在明白你的意思了,菲利克斯。很抱歉你说得对。起初我错过了这个空间。好地方。你的选择器有点不对劲。它应该是“select:selected”,在select和:selected之间有一个空格。这不应该起作用:所选仅适用于选项元素。谢谢@FishBasketGordo,我现在已经解决了@杰米迪克森:当然,在编辑之前;计数:选择将不起作用。啊,我现在明白你的意思了,菲利克斯。很抱歉你说得对。起初我错过了这个空间。好的地方。当脚本加载时,它会选择第一个默认值。您必须在用户选择所需内容后运行脚本
当脚本加载时,它会选择默认的第一个值。你必须在用户选择他想要的东西后运行脚本。这是工作,但只是个别的。AJAX只发送计数值。你对身份证有什么想法吗?我肯定它也有同样的问题。您还需要为它添加一个更改事件处理程序或其他类似的处理程序。Tnx为您提供建议,我现在正在这样做^ ^这是工作,但只是个别的。AJAX只发送计数值。你对身份证有什么想法吗?我肯定它也有同样的问题。您需要为它添加一个变更事件处理程序或其他类似的处理程序。Tnx为您提供建议,我现在就这么做^_^