简单的HTML输入onkeypress事件无法正常工作

时间:2012-08-23 16:08:39

标签: javascript function textbox event-handling

我是新来的(以及一般的Web开发),我一直在努力理解为什么我的函数没有在指定的事件上执行。

我发现了这篇文章,它看起来与我想要的完全一样,但即使这样也行不通:

html <input type="text" /> onchange event not working

任何帮助将不胜感激。我的确切代码如下。我有一些文本输入字段(实际上是搜索框),最后我想让它在用户在文本字段中输入数据时选中一个复选框,但它似乎甚至没有调用该函数。

我在阅读上述帖子时尝试了一些变体。以下是我尝试过的一些输入字段属性:

<input type="date" name="dt" size="10" value="2012-07-21" onChange="SetCheckBox('d')" />
<input type="search" size="10" name="sl" value="" onChange="SetCheckBox('n')" />
<input type="search" size="10" name="sf" value="" onkeypress="SetCheckBox('n')" />
<input type="search" size="20" name="st" value="" onkeypress="SetCheckBox(this);" />

这是我的javascript:

<script language="javascript" type="text/javascript">
    Function SetCheckBox(id) {
        alert (id.value);
        document.write('test');
    }
</script>

我试过不传递任何参数,只是做一个document.write,但它似乎没有调用函数。是的,javascript已启用并在页面上的其他地方工作就好了! 脚本位于正文中,位于表单下方。

多个浏览器中的(缺乏)行为是相同的。 感谢您提供任何帮助。 射线

4 个答案:

答案 0 :(得分:1)

对于javascript,function关键字为小写。

Function SetCheckBox(id)

需要:

function SetCheckBox(id)

另外,你没有传递对象来获取id,所以......

function SetCheckBox(id) {
        var ele = document.getElemenyById(id);
        alert (ele.value);
        document.write('test');
 }

答案 1 :(得分:1)

除了已经提到的功能

中的大写字母F之外的几个问题
  1. 您的函数传递一个名为id的变量,但需要一个字段
  2. 您传递的字符串不是ID而不是字段
  3. 只有使用(this)的最后一个版本才有效,但没有值提醒
  4. document.write将在页面加载后调用页面及其上的所有脚本(例如,不是内联)
  5. 所以代码应该是EITHER

    function SetCheckBox(id) {
        var val = document.getElementById(id).value
        alert (val);
        document.getElementById('someContainer').innerHTML=val;
    }
    

    OR

    function SetCheckBox(fld) {
        var val = fld.value
        alert (val);
        document.getElementById('someContainer').innerHTML=val;
    }
    

    根据您的说明,我猜你想要这样做:DEMO

    <input type="date" id="dt" name="dt" size="10" value="2012-07-21"
    onkeypress="SetCheckBox(this)" />
    <input type="checkbox" id="dtChk" />
    

    使用此脚本

    function SetCheckBox(fld) {
        var checkbox = document.getElementById(fld.id+"Chk");
        // check if something is entered, uncheck if not
        checkbox.checked=fld.value.length>0; 
    }
    

    甚至可能加上

    window.onload=function() {
      document.getElementById("dt").onkeypress();
    }
    

    如果该字段在(重新)加载时间不为空,将检查该框

答案 2 :(得分:0)

在javascript函数中,关键字是用小写字母写的,在这里你用大写字母写了F.

答案 3 :(得分:0)

onkeypress和onchange事件应该有效

<body>
<script type="text/javascript">

function SetCheckBox() {
    alert("1");
}

</script>

<input id = "test" value="" onkeypress="SetCheckBox();" />

<input id = "test1" value="" onchange="SetCheckBox()" />

</body>