jquery国家选择何时已保存国家/地区?

时间:2009-07-28 00:52:45

标签: jquery

我在下面的jquery代码中遇到了问题。如果您能提供帮助,请给我建议或代码

所以我有一个国家/地区下拉列表,一个美国的州下拉列表,以及一个非美国用户的州输入字段。

当您从国家/地区列表中选择美国时,它会隐藏其他国家/地区,当您选择美国以外的任何国家/地区时,它会隐藏美国州名单并显示输入字段

到目前为止一直很好,现在这里出现了问题所在,此代码非常适合注册表单,但不适用于编辑用户位置。

当用户在访问编辑页面时已经将这些数据保存在mysql / php中时,它将无法正常工作。 1解决方案我想的是有两个javascript函数并使用PHP来解析正确的一个取决于那个国家,如果他们有其他国家然后美国保存处理问题,它会加载示例英格兰选择但会显示美国状态而不是状态输入字段和副。

但仍有一个主要问题。如果您选择非美国国家/地区,然后获取其他输入框,然后您可以输入数据,现在我可以说我这样做并键入一些数据,然后从国家/地区列表中选择美国,它会隐藏我输入的数据让我选择一个州。

问题在于后端使用PHP我检查文本输入是否为空或状态是否为空,这个缺陷将允许两者保存数据。

我希望这是有道理的,我希望你的意见和帮助

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script>
<script type="text/javascript">
$(document).ready(function() {
   locationlist();
});

function locationlist() {
    $('#othstate').hide();
    $('#country').change( function() {         
        var val = $(this).val();
     if (val == 223) {
         $('#state').val('').show();
         $('#othstate').hide();
     }else {
        $('#state').val('').hide();
        $('#othstate').show();
     }
   });
 }
</script>

<form method="post" name="form1">
   <select style="background-color: #ffffa0" name="country" id="country">
      <option>Select Country</option>
      <option value="223" selected="selected">USA</option>
      <option value="224">Canada</option>
      <option value="225">England</option>
      <option value="226">Ireland</option>
   </select>
<div id="state">
   <select style="background-color: #ffffa0" name="state" id="state">
      <option>Select State</option>
      <option value="1">Florida</option>
      <option value="2">New York</option>
      <option value="3" selected="selected">Georgia</option>
      <option value="4">California</option>
   </select>
</div>
<div id="othstate"><input type="text" name="othstate" id="othstate" value="" class="textBox"></div>

2 个答案:

答案 0 :(得分:2)

不要只隐藏输入/选择,而是禁用它。这将阻止将值表单发布到您的服务器。

function locationlist() {
    $('#othstate').hide().attr("disabled", "disabled");
    $('#country').change( function() {         
        var val = $(this).val();
        if (val == 223) {
         $('#state').val('').show().removeAttr("disabled");
             $('#othstate').hide().attr("disabled", "disabled");
        }else {
            $('#state').val('').hide().attr("disabled", "disabled");
            $('#othstate').show().removeAttr("disabled");
        }
    });
}

答案 1 :(得分:0)

我读了两个问题(澄清我是不是错了)

1)使用注册页面,PHP可能会收到填写的两个字段。

1&GT;乔尔波特的建议有效。


2)重用编辑页面的代码

2 - ;听起来你需要PHP来为输入插入默认值。除此之外,我不确定是否还有其他高级问题 - 这只是实施问题。

我想到的选项:

client-side =让js代码轮询(通过ajax)服务器获取信息,然后插入这些值。

server-side = PHP可以直接输入文本输入的值。至于下拉菜单,我不知道如何在html&lt; select&gt;中设置默认选项。标签,但PHP可以插入js代码以在页面加载时选择正确的值,或者PHP也可以在第一次给出时默认选择。