Bootstrap Form Helpers 国家/地区选择器未序列化
Bootstrap Form Helpers country picker doesn't get serialized
我的表单中有一个国家/地区选择器,如下所示:
<select class="bfh-countries text-left" name="country" id="country" data-country="DE">
</select>
我可以像这样使用 jQuery 获取值:
$("#country").val()
但是当我尝试使用 $("#myform").serializeArray()
序列化表单时 "country" 的值是一个空字符串。
我该如何解决这个问题?
我 运行 遇到了这个问题,我花了很长时间才找到它,因为没有任何例子。你真正想要做的是使用 data-name="country",它将后端的隐藏变量命名为 country。对于国家选择器,您可以使用 div 标签,如下所示:
<div class="country bfh-selectbox bfh-countries" data-flags="true" data-filter="true" data-name="country" data-country="POSTBACK_VARIABLE_GOES_HERE"></div>
如果你这样做,你会发现一个隐藏的变量被添加到页面如下:
<input type="hidden" name="country" value="US">
上面的值假定您 select 在美国,但它是作为 2 个字符的代码输入的,如果您需要 server-side,则可以按上面的 data-country 输入验证并再次显示页面,而无需强制用户重新 select 值。
这简直是一场噩梦。
我的表单中有一个国家/地区选择器,如下所示:
<select class="bfh-countries text-left" name="country" id="country" data-country="DE">
</select>
我可以像这样使用 jQuery 获取值:
$("#country").val()
但是当我尝试使用 $("#myform").serializeArray()
序列化表单时 "country" 的值是一个空字符串。
我该如何解决这个问题?
我 运行 遇到了这个问题,我花了很长时间才找到它,因为没有任何例子。你真正想要做的是使用 data-name="country",它将后端的隐藏变量命名为 country。对于国家选择器,您可以使用 div 标签,如下所示:
<div class="country bfh-selectbox bfh-countries" data-flags="true" data-filter="true" data-name="country" data-country="POSTBACK_VARIABLE_GOES_HERE"></div>
如果你这样做,你会发现一个隐藏的变量被添加到页面如下:
<input type="hidden" name="country" value="US">
上面的值假定您 select 在美国,但它是作为 2 个字符的代码输入的,如果您需要 server-side,则可以按上面的 data-country 输入验证并再次显示页面,而无需强制用户重新 select 值。
这简直是一场噩梦。