单选按钮标签在safari上点击计时
Radio button label click timing on safari
我有一个表单:
<form id="boxselection" method="POST" action="select.php">
<label class="labels" for="boxtype">
<input type="radio" name="boxtype" value="3x80">
<img src="...">
</label>
<label class="labels" for="boxtype">
<input type="radio" name="boxtype" value="4x80">
<img src="...">
</label>
</form>
<script>
$('.labels').on('click',function() {
$('#boxselection').submit();
});
</script>
在Chrome, Firefox和IE中一切正常工作,在Safari中PHP脚本不接收任何POST值。
一个有效的解决方法是这样修改javascript:<script>
$('.labels').on('click',function() {
setTimeout( function() {
$('#boxselection').submit();
}, 1000);
});
</script>
这是现在工作,我的问题是…为什么?
首先,我认为您需要将id
值添加到您的单选按钮中,以便将标签与其各自的单选按钮相关联。for
属性与表单元素的id
相关联。
<form id="boxselection" method="POST" action="select.php">
<label class="labels" for="checkbox1">
<input type="radio" name="boxtype" id="checkbox1" value="3x80">
<img src="...">
</label>
<label class="labels" for="checkbox2">
<input type="radio" name="boxtype" id="checkbox2" value="4x80">
<img src="...">
</label>
</form>
对于jQuery on.()
,最有可能的原因,它的工作后setTimeout
是,单选按钮实际上并没有立即改变后,点击页面上的"标签",即使现在它是由id
正确地与单选按钮相关联。
你想把你的委托添加到单选按钮本身的change
事件中,当你点击标签按钮时,它也会起作用:
$('form#boxselection').delegate('change', 'input[type="radio"]', function(e) {
$('#boxselection').submit();
});
上面的代码将在表单中的任何单选按钮的更改事件上触发表单提交。
相关文章:
- 在<页眉>标签
- 在新标签上打开链接,IE7-8和safari所有版本都无法使用
- HTML5音频标签没有播放声音的铬和safari中的第一个未聚焦标签
- JavaScript禁用”;打开”"打开新标签”;以及“;复制“;长按iOS 8 safari中的锚标签
- OS X 10.10 Safari 8 jquery UI 标签问题
- 如何在 javascript 中调用输入文件标签 在 safari 浏览器中
- jQuery 显示在移动 Safari 上的 标签上
- HTML5 数据列表标签未在 Safari 中填充
- 使用 JavaScript 在 iPad Safari 上打开一个新标签页
- 当 HTML 中的标签发生更改时,粘贴弹出窗口在 Safari(装有 iOS 8.0.2 的 iPad)中消失
- PDF 中的锚标签在 Firefox 和 safari 中不可点击
- 为什么Safari中相同宽度的“选择和输入”标签在渲染时差异巨大
- 在safari中无法从标签中获取值
- 单选按钮标签在safari上点击计时
- Safari扩展获取标签位置或标识符
- 视频标签现在不能在Safari中工作
- 移动Safari在动态改变视频标签源时崩溃
- Safari删除表单标签
- 点击<标签>在Mobile Safari中
- Safari浏览器崩溃时,取消对焦和再次对焦标签用jquery代码网站