首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当国家已经保存时选择jquery国家吗?

当国家已经保存时选择jquery国家吗?
EN

Stack Overflow用户
提问于 2009-07-28 00:52:45
回答 2查看 1.8K关注 0票数 2

我对下面的jquery代码有一个问题。如果你能帮上忙,请给我建议或代码

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

当您从国家列表中选择美国时,它将隐藏州字段;当您选择除美国以外的任何国家时,它将隐藏美国状态列表并显示输入字段

到目前为止一切都很好,现在问题来了,这段代码对注册表单很有效,但不适用于编辑用户位置。

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

不过,仍然有一个主要问题。如果你选择了一个非美国国家,你就会得到一个州输入框,然后你可以输入数据,现在假设我这样做了,输入了一些数据,然后从国家列表中选择了美国,它会隐藏我输入的数据,让我选择一个州。

这个问题是在PHP的后端,我检查文本输入是空的还是状态是空的,这个缺陷会允许两者都保存数据。

我希望这是有意义的,我希望你的意见和帮助。

代码语言:javascript
代码运行次数:0
运行
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-28 01:02:30

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

代码语言:javascript
代码运行次数:0
运行
复制
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");
        }
    });
}
票数 2
EN

Stack Overflow用户

发布于 2009-07-28 01:12:43

我读了两个问题(如果我错了,请澄清)

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

1>乔尔·波特的建议奏效了。

2)重用编辑页面的代码

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

我想到的选项:

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

server-side = PHP可以直接输入文本输入值。至于下拉列表,我不确定如何在html标签中设置默认选项,但是PHP可以在页面加载时插入js代码来选择正确的值,或者PHP可以将默认选项也设为第一个给定的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1191405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档