【问题标题】:Set Select Option Using Jquery使用 Jquery 设置选择选项
【发布时间】:2016-09-07 12:39:39
【问题描述】:

我有国家、州、城市三个选择框

<select name="property_country" id="country" > 
  <option value="">Country</option>
</select>

<select name="property_state" id="state" > 
  <option value="">State</option>
</select>

<select name="property_city" id="city"> 
  <option value="">City</option>
</select>

PHP 填充的是 country,Ajax 填充的是 State 和 City 字段,没有问题。我在数据库中有两个国家 - 印度和美国。

如果我选择印度,ajax 会正确给出状态。但是,如果我重新选择选项标签“国家”,那么州和城市字段将变为空白。如果没有选择国家(意思是“国家”),我需要 jQuery 代码来填充上面给出的“州”和“城市”的默认标签和值。

这可以通过数据库完成,方法是填写州和城市条目并将它们附加到国家,然后 onload(正文或 javascript)上传默认值。但这将使验证工作也拼凑起来,而不是合乎逻辑的流程。因此需要jQuery解决方案。

我的 jQuery 代码如下:

$(document).ready(function() {
  $('#country').on('change', function() {
    var country_id = $('#country').val();
    $.ajax({
      type: 'POST',
      url: '../controllers/select.php',
      data: "country_id=" + country_id,
      success: function(msg) {
        $("#state").html(msg);
      }
    });
  });

  $('#state').on('change', function() {
    var state_id = $('#state').val();
    $.ajax({
      type: 'POST',
      url: '../controllers/select.php',
      data: "state_id=" + state_id,
      success: function(msg) {

        $("#city").html(msg);
      }
    });
  });

我试过了

if (country_id == "") {
    $("#state").val("State");               
} else {    
    $.ajax({});
}

【问题讨论】:

  • 请同时添加您的 JavaScript 代码。
  • 你有没有尝试自己写一些东西?
  • 您可以像 $('#state').val('') 一样重置选择字段的值
  • 您可以在服务器端查看国家/地区ID。如果国家/地区 ID 为空白,则您需要发送所有州。如果发送了国家 ID(例如 10),那么您需要发送 country_id = 10 的州。州也是如此。
  • 在这里您将选项添加为 $("#city").html(msg);因此,一旦您从 ajax 获得选项,就不会出现空白城市选项。所以选项是如果没有选项你需要做的是: $("#city").html(' ');然后做 $("#city").val('')

标签: jquery select dropdown


【解决方案1】:

如果国家/地区值被重置,您必须再次在选择字段中添加空白选项。

$('#country').on('change', function() {
var country_id = $('#country').val();
if(country_id){
  $.ajax({
    type: 'POST',
    url: '../controllers/select.php',
    data: "country_id=" + country_id,
    success: function(msg) {
      $("#state").html(msg);
    }
   });
  }
  else{
    $("#state").html(' <option value="">State</option>'); 
    $("#city").html(' <option value="">City</option>'); 
  }
});

【讨论】:

  • 我的代码还有另一个问题 - 当我选择国家时,状态会更新,但城市不会更新。我怎样才能得到整个链条,即。选择国家/地区时要更新的州和城市(州)。
  • 这条链是怎么可能的?您选择国家,它会加载州,然后再次选择州,然后只会进行另一个 ajax 调用并加载城市。那么希望选择字段中的第一个状态会被自动选中吗?
  • 目前,当我选择国家时,会自动选择州。因此,就像您说的那样,更好的选择是,当我选择国家/地区时,它应该显示该国家/地区的状态(但第一个选项应该是选择状态-当前不是-自动选择状态),然后一旦选择了状态应该给出该州的城市列表,但第一个选项可以是选择城市(当前城市正在自动选择)......对不起,我是 javascript/jquery/ajax 的新手......
  • 行后 $("#state").html(msg);在成功的 ajax 写下这一行 $("#state").val($("#state option:eq(0)").val());
  • 好的,这必须通过 php 通过插入 并通过 ajax 获取并将其显示为默认字段来完成....
猜你喜欢
  • 2011-01-14
  • 2018-12-29
  • 1970-01-01
  • 2011-10-27
  • 2012-12-04
  • 2014-11-20
  • 2011-04-03
  • 1970-01-01
  • 2012-07-07
相关资源
最近更新 更多