【问题标题】:How to submit a form with dropdown selected value only?如何仅提交带有下拉选择值的表单?
【发布时间】:2012-10-31 07:11:47
【问题描述】:

我想提交一个只有一个带有语言值的下拉菜单的表单,我想提交表单并访问该值,以便我可以本地化页面上的一些文本。

这是我正在使用但无法访问帖子值的代码

html 表单:

<form action='' method='post'>
<select id="lang">
    <option value="english">Eng</option>
    <option value="arabic">Arabic</option>
</select>
</form>

jQuery 提交表单:

 <script type="text/javascript">
    jQuery(function($){
        var lang = $("#lang").val();
        var Home = 'الرئيسية';

        $("#lang").change(function(){
            cntr = $("#lang option:selected").val();

            if(lang=="arabic"){
                $(".menu ul li a:eq(0)").text(Home);
            }
            $('form').submit();
        });
    });


</script>

【问题讨论】:

  • 您的&lt;select&gt; 没有name 属性。

标签: php jquery mysql wordpress


【解决方案1】:

我认为您在选择中缺少“名称”属性:

<select name="lang" id="lang">
    <option value="english">Eng</option>
    <option value="arabic">Arabic</option>
</select>

【讨论】:

  • @defau1t name 属性是浏览器用来将表单输入序列化为查询字符串或发布数据的。它提供 POST 或 GET 中使用的 key=value 对中的键。
  • 这是表单的工作方式,名称是标准化为 POST 请求中值的标识符的属性。表单中的每个字段都需要一个键和一个值,我们都决定(很久很久以前)为键使用“名称”属性。
【解决方案2】:

您应该为“选择”元素指定“名称”属性

【讨论】:

    【解决方案3】:

    var lang = $("#lang").val(); 只会在页面加载并且需要name 进行选择时触发

    将其移动到更改处理程序中,以便每次更新

       $("#lang").change(function(){
           var lang=$(this).val();
            cntr = $("#lang option:selected").val();
    
            if(lang=="arabic"){
                $(".menu ul li a:eq(0)").text(Home);
            }
            $('form').submit();
        });
    

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多