如何仅提交带有下拉选择值的表单?
Posted
技术标签:
【中文标题】如何仅提交带有下拉选择值的表单?【英文标题】: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>
【问题讨论】:
您的<select>
没有name
属性。
【参考方案1】:
我认为您在选择中缺少“名称”属性:
<select name="lang" id="lang">
<option value="english">Eng</option>
<option value="arabic">Arabic</option>
</select>
【讨论】:
@defau1tname
属性是浏览器用来将表单输入序列化为查询字符串或发布数据的。它提供 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();
);
【讨论】:
以上是关于如何仅提交带有下拉选择值的表单?的主要内容,如果未能解决你的问题,请参考以下文章
如何在需要时仅提交隐藏/显示字段数据之一 - Laravel