按键事件上的简单HTML输入不起作用

Simple HTML input onkeypress event not working

本文关键字:HTML 输入 不起作用 简单 事件      更新时间:2023-09-26

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

我找到了这个帖子,它似乎正是我想要的,但即使这样也不起作用:

html<输入类型=";文本"/>onchange事件不起作用

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

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

<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已经启用,在页面的其他地方工作也很好!脚本在正文中,就在表单下方。

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

对于javascript,function关键字是小写的。

Function SetCheckBox(id)

需要:

function SetCheckBox(id)

此外,您并不是通过传递对象来获取id,所以…

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

除了函数中已经提到的大写字母F之外的几个问题

  1. 函数传递一个名为id的变量,但需要一个字段
  2. 您传递的字符串不是ID并且没有引用字段
  3. 只有使用(this)的上一个版本才能工作,但没有值得提醒的值
  4. document.write将在页面加载后调用页面及其上的所有脚本(例如,不内联)

所以代码应该是

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

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

根据你的描述,我猜你想这样做:演示

<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();
}

如果字段在(重新)加载时不为空,则

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

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>