jquery - 从更改时的选择中获取值(value)

标签 jquery ajax select

我有以下表单,有 2 个选择:

<form id="form" class="form_visitar" method="post" action="ajax/selects.php">
    <select name="select-local" class="select-index">
            <option value="">'.$select_visitar_tipo.'</option>
        <option value="1">'.$select_visitar_rest.'</option>
    <option value="2">'.$select_visitar_bar.'</option>
    <option value="3">'.$select_visitar_cafe.'</option>
</select>
<select name="select-precio" class="select-index">
    <option value="">'.$select_visitar_precio.'</option>
    <option value="1">'.$select_visitar_p1.'</option>
    <option value="2">'.$select_visitar_p2.'</option>
    <option value="3">'.$select_visitar_p3.'</option>
</select>                       
</form>

我想要发生的是:在我从下拉列表中选择某些内容后(单击它们后我没有提交按钮)我想获取通过 ajax 进行查询的值。我对使用 ajax 函数非常陌生,我觉得我可能无法得到我想要的那么多。到目前为止,这是我的 ajax 函数(现在的 selects.php 只是一条消息,将显示在 div 中进行测试):

<script type="text/javascript">
    $(".form_visitar").click(function() {
    $.ajax({
        type: "POST",
        url: $(this).attr("action"),
        data: $(this).serialize(),
        success: function(data) {
            $("#result").html(data);
        }
    })        
    return false;
}); 
</script>

最佳答案

您需要绑定(bind)到 change选择元素上的事件,而不是click表单上的事件。

$(".select-local, .select-precio").change(function() {
  $.ajax({
      type: "POST",
      url: $(".form_visitar").attr("action"),
      data: $(".form_visitar").serialize(),
      success: function(data) {
          $("#result").html(data);
      }
  });
});

这将绑定(bind) change select 的处理程序具有类名的元素 select-localselect-precio 。如果您只想针对特定选择,只需更改选择器即可:

$(".select-precio").change(function() {
   ...
});

如果您只发送选择的值,那么您可能不需要序列化整个表单。你可以这样做:

$(".select-local, .select-precio").change(function() {
  var value = $(this).val();
  $.ajax({
      type: "POST",
      url: $(".form_visitar").attr("action"),
      data: "value=" + value,
      success: function(data) {
          $("#result").html(data);
      }
  });
});

关于jquery - 从更改时的选择中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6020207/

相关文章:

javascript - 使用 AJAX 和联系表单来消除页面重新加载

mysql - mysql中Limit的使用

mysql - 重新排序 MYSQL 表

jquery - 如何在PC屏幕上显示8个视频,在手机屏幕上显示4个视频

javascript - 如何为线条设置动画以跟踪移动的 CSS 元素?

jquery - 在syncfusion柱形图中设置x轴上的垂直文本

javascript - 覆盖 jQuery Mobile 背景 CSS

asp.net - 从 jQuery ajax 到 asp.net WebService 的错误响应,但没有错误

javascript - 显示页面其他位置的 JavaScript 隐藏元素

sql - Oracle 自联接并与另一个表链接