我的印象是,我可以通过执行这个$(this).val()来获取一个选择输入的值;并将onchange参数应用到select字段。

只有在引用ID时,它才会起作用。

我怎么用这个。


当前回答

请注意,如果这些不工作,这可能是因为DOM还没有加载,您的元素还没有找到。

若要修复,请将脚本放在正文的末尾或使用文档就绪

$.ready(function() {
    $("select").on('change', function(ret) {  
         console.log(ret.target.value)
    }
})

其他回答

尝试事件委托方法,这几乎适用于所有情况。

$(document.body).on('change',"#selectID",function (e) {
   //doStuff
   var optVal= $("#selectID option:selected").val();
});

寻找jQuery站点

HTML:

<form>
  <input class="target" type="text" value="Field 1">
  <select class="target">
    <option value="option1" selected="selected">Option 1</option>
    <option value="option2">Option 2</option>
  </select>
</form>
<div id="other">
  Trigger the handler
</div>

JAVASCRIPT:

$( ".target" ).change(function() {
  alert( "Handler for .change() called." );
});

jQuery的例子:

为所有文本输入元素添加有效性测试:

$( "input[type='text']" ).change(function() {
  // Check input( $( this ).val() ) for validity here
});

我的印象是,我可以得到一个选择的值 输入$(this).val();

如果你不引人注目地订阅(这是推荐的方法),这是有效的:

$('#id_of_field').change(function() {
    // $(this).val() will work here
});

如果你在脚本中使用onselect和mix标记,你需要传递一个引用到当前元素:

onselect="foo(this);"

然后:

function foo(element) {
    // $(element).val() will give you what you are looking for
}
$('#select-id').change(function() {
    console.log($(this).val());
});

我有一个例子来帮助新想法。 我希望这对任何人都有帮助。

$('#editpricelist_box').change(function ($e){
    $('input[name="edit_unit_price"]').val(parseFloat(this.val()).toFixed(2));
    console.log(this.val());
});