我们的网络应用程序中有一个标准的结算表单。我正在使用JQuery selectBox plugin
根据客户端的请求调整输入,遗憾的是,这会导致浏览器在auto_fills_用户的地址时忽略state
下拉列表。
在大多数情况下,插件会隐藏<select>
输入,然后在漂亮的下拉版本中来回传递值的变化。原始隐藏输入或下拉列表都不会获取状态auto_fill_。一旦我关闭selectBox
,它就会再次运作。
如何在浏览器中提示更新新的下拉元素?
JS初始化插件
$(function() {
$(".WhiteDD").selectBox();
}
HTML帖子插件初始化:
<div class="FormBlock">
<label class="FormLabel" for="city">City</label>
<input class="BillingInput required" id="city" name="transaction[billing][locality]" type="text" value="">
</div>
<div class="FormBlock">
<label class="FormLabel" for="state">State</label>
<select name="transaction[billing][region]" class="WhiteDD selectBox" id="state" style="display:none">
<option value="AL" selected="selected">AL</option>
...
<option value="WY">WY</option>
</select>
<!-- This code is injected by the selectbox plugin-->
<a class="selectBox WhiteDD selectBox-dropdown" title="" tabindex="0"><span class="selectBox-label">AL</span><span class="selectBox-arrow"></span></a>
<!-- End injection -->
</div>
修改
澄清 - 我指的是默认的浏览器地址auto_fill_功能。这不是Javascript中发生的事情,或者我可以使用selectBox插件提供的方法来捕获和更新它。
有没有办法让默认浏览器auto_fill_动作触发Javascript?
放弃
使用默认的HTML下拉菜单进行自动填充播放是一项挑战,因为使用Jquery插件可以很好地发挥它的价值。我们换掉了两个字符掩码文本输入的状态下拉列表。感谢您的回复,抱歉,我无法透露全部奖金。
答案 0 :(得分:1)
您没有提供有关表单整个“自动填充”功能的详细信息,但我会假设您在代码中的某个位置知道您希望选择框默认的状态到 - 此时,再次对您的州选择初始化selectBox
:
$("#state").selectBox("value", [state index]);
其中[state index]是您要选择的状态的索引。
我从selectBox demo's page获得了这个想法,查看了源代码并检查了value-2
按钮的功能。
答案 1 :(得分:1)
您将使用selectBox API并在应该自动填充表单其余部分的相同函数中调用它。这将使用下拉列表中的第一个值更新状态下拉列表。
$(".WhiteDD").selectBox('value', 1);
看看这里:https://github.com/claviska/jQuery-SelectBox/blob/master/index.php从第38行开始。