Javascript代码适用于IE,但在Chrome上失败

时间:2015-08-13 11:16:25

标签: javascript google-chrome internet-explorer

此代码在IE上运行良好,但在Chrome上失败。

理论:当您点击输入时,输入标记为X或再次点击时X被删除(就像复选框一样),当满足任何这些条件时,脚本应该发送表单Y(如果选中X)或N(如果X为空)。

HTML

注意:使用外部数据库中的数据动态生成值。

<input type="text" READONLY id="65535" class="chk" iffalse="N" iftrue="Y" value=""
    onclick="fchkboxclick();" />

的JavaScript

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.

任何帮助将不胜感激。感谢。

2 个答案:

答案 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>