此代码在IE上运行良好,但在Chrome上失败。
理论:当您点击输入时,输入标记为X或再次点击时X被删除(就像复选框一样),当满足任何这些条件时,脚本应该发送表单Y(如果选中X)或N(如果X为空)。
注意:使用外部数据库中的数据动态生成值。
<input type="text" READONLY id="65535" class="chk" iffalse="N" iftrue="Y" value=""
onclick="fchkboxclick();" />
function fchkboxclick() {
object = window.event.srcElement;
if (object.id == '65535') {
if (object.value == 'X') {
activevalue = object.getAttribute("iffalse");
objet.value = '';
} else {
activevalue = object.getAttribute("iftrue");
object.value = 'X';
}
} else {
if (object.value == 'X') {
sendevent(object.id, 'check', object.getAttribute("iffalse"));
} else {
sendevent(object.id, 'check', object.getAttribute("iftrue"));
}
}
}
当我在任何版本的IE上运行时,表单(sendevent函数)从属性(Y或N)接收值,但在Chrome中我只接收X.
任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
如果你在元素中使用onclick事件,那么更容易做到这一点
<input onclick="dosomething(this);" />
然后你的代码就可以了
function dosomething(element) {
// element is the element that was clicked
}
答案 1 :(得分:0)
好的,我完成了这个:
<html>
<body>
<input type="checkbox" name="chb[]" id="pepe" class='chk' iffalse="N" iftrue="Y" value="0" onchange="validate()" />
<br/> Value sent
<input type="text" id="1234" value="" />
<script type="text/javascript">
var inputcb = document.getElementById('1234');
function validate() {
if (document.getElementById('pepe').checked) {
inputcb.value = document.getElementById('pepe').getAttribute("iftrue");
} else {
inputcb.value = document.getElementById('pepe').getAttribute("iffalse");
}
}
</script>
</body>
</html>