通过点击单元格代码来选择单选按钮在Chrome中工作,而不是在Firefox中
HTML: selecting radio-button by clicking on cell - code working in Chrome, not in Firefox
这是我的JavaScript:
<script>
function handleRadioRow() {
var t = event.target;
if (t.tagName == "input")
return;
while (t.tagName != "th")
t = t.parentElement;
var r = t.getElementsByTagName("input")[0];
r.click();
}
</script>
这是我的HTML:
<form action="order.php">
<table border="1">
<tr>
<th onclick="handleRadioRow()"><input type="radio" name="date" value="08-14">August 14<br><?php echo($price) ?></th>
<th onclick="handleRadioRow()"><input type="radio" name="date" value="08-15">August 15<br><?php echo($price) ?></th>
<th onclick="handleRadioRow()"><input type="radio" name="date" value="08-16">August 16<br><?php echo($price) ?></th>
<th onclick="handleRadioRow()"><input type="radio" name="date" value="08-17">August 17<br><?php echo($price) ?></th>
<th onclick="handleRadioRow()" bgcolor="#00FF00"><input type="radio" name="date" value="08-18" checked="checked">August 18<br><?php echo($price) ?></th>
<th onclick="handleRadioRow()"><input type="radio" name="date" value="08-19">August 19<br><?php echo($price) ?></th>
<th onclick="handleRadioRow()"><input type="radio" name="date" value="08-20">August 20<br><?php echo($price) ?></th>
<th onclick="handleRadioRow()"><input type="radio" name="date" value="08-21">August 21<br><?php echo($price) ?></th>
<th onclick="handleRadioRow()"><input type="radio" name="date" value="08-22">August 22<br><?php echo($price) ?></th>
</tr>
</table>
</form>
这是不工作的jsfiddle在Chrome浏览器。
或者也许你知道另一种方法来获得单选按钮选择时,推/点击单元格?
非常简单,无需JavaScript!用<label>
来扭曲input
:
<th onclick="handleRadioRow()"><input type="radio" name="date" value="08-14">August 14<br></th>
:后<th><label><input type="radio" name="date" value="08-14">August 14<br></label></th>
但是有一点缺点——用户只能在文本中点击,不能在空白区域点击——这比只点击单选按钮要好得多。http://jsfiddle.net/vitaly_zdanevich/qcbqtxh9/
…或者你可以按我的意愿去做。: -)在所有表格单元格的javascript调用中添加"this":
<th onclick="handleRadioRow(this)">
然后将js-function更新为以下内容(假设您正在使用jQuery)
<script type="text/javascript">
function handleRadioRow(el) {
var radioBtn = $(el).find('input').first();
radioBtn.prop('checked',true);
}
</script>
你可以试试
function handleRadioRow(obj) {
$(obj).find('input:radio[name=date]').prop('checked',true);
}
这是一个jSFiddle: http://jsfiddle.net/kggys40k/
我不知道为什么这个函数当保存在javascript块不工作在小提琴。所以我把它保存在html块本身里面使用脚本标签和测试。
p。S:在调用handleRadioRow()函数时使用这个关键字
如果你不想使用jquery等…
function handleRadioRow(event) {
var t = event.target;
if (t && t.tagName == "INPUT")
return;
while (t && t.tagName != "TH") {
t = t.parentElement;
}
var r = t.getElementsByTagName("INPUT")[0];
r.click();
}
作为
<th onclick="handleRadioRow(event)"><input type="radio" name="date" value="08-14">August 14<br><?php echo($price) ?></th>
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- javascript window.open将无法在Chrome控制台上工作
- 如何编写在Chrome和IE中正常工作的JavaScript
- 只有当Javascript控制台在chrome上打开时,Javascript才能工作
- NaN:Firefox和IE中的NaN,CHROME工作正常
- jquery日期转换chrome工作,但IE和firefox't
- Chrome工作区无法使用源地图和Javascript
- 数组比较在Chrome工作,但不与Chrome IPAD
- 如何获得一个值从选项时选择(此代码为chrome工作)
- HTML表单与javascript得到"在IE,但在Chrome工作
- 简单的脚本与onclick事件在Chrome工作良好,但在Firefox失败
- 在Firefox剑道按钮文本不改变,而在IE和Chrome工作
- Ajax GIF加载器不工作在IE和Firefox(最新),但在Chrome工作
- Firefox返回TypeError: document.getElementById(..)为空,但Chrome工作正
- 纯Javascript: onClick切换行/图像:Firefox/Chrome -工作:IE -不工作
- 为什么if (condition) {statements} else返回;"在Chrome工作
- 我怎么能得到jsFiddle在Chrome工作
- 模态对话框与Mozilla工作,但不与Chrome工作