我需要调用2个函数onkeypress其中第一个函数是返回类型;第二个函数没有被调用但是如果倒序使用
要求:
OnKeyPress,该键应被验证。如果是数字,则接受该值在文本框中,然后复制值到另一个文本框;如果不是数字,然后什么都不做
顺序正确,但第二个函数没有被调用;
<input type="text" name="no_of_units" id="no_of_units" size="5"
onkeypress="return isNumberKey(event);calc_exchange();">
以相反的顺序两个函数都工作。我需要首先调用isNumberKey函数。
<input type="text" name="no_of_units" id="no_of_units" size="5"
onkeypress="calc_exchange();return isNumberKey(event);"
功能:
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
function calc_exchange()
{
var raw1=document.getElementById("no_of_units").value;
document.getElementById("next_no_of_units").value=raw1;
}
我需要调用以下顺序的函数;
- 返回isNumberKey(事件)
- calc_exchange ()
你可以在按键上调用两个javascript函数,其中第一个函数是返回类型函数。
<input type="text" name="txtName" id="txtName" size="5"
Onkeypress="return isNumberKey(event,this) && clickButton(event,'imgbtnSearch')">
使用,,操作符,我们可以在按键上调用两个javascript函数。
调用return
将执行它右边的内容,然后退出,因此自然不会调用第二个函数。
在不知道函数内部是什么的情况下很难回答。但我建议你用JavaScript附加事件处理程序,而不是像你这样的内联。这样你会得到更多的控制。
查看这里如何附加事件处理程序:http://www.quirksmode.org/js/events_advanced.html
所以你不能在返回后调用任何东西,所以你可以试试这个。如果输入错误会引起警报。
<input type="text" name="no_of_units" id="no_of_units" size="5"
onblur=calcexchange() onkeypress="isNumberKey(event)">
....
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
alert("Wrong I/P");
evt.focus()
}
return
不一定是第一条语句。只需按顺序调用函数并稍后返回结果。
<input type="text" name="no_of_units" id="no_of_units" size="5"
onkeypress="var result = isNumberKey(event); calc_exchange(); return result;">
返回isNumberKey
的结果可能会阻止默认动作,如果返回false则忽略输入。似乎您想要防止非数字和执行calc_exchange
。在这种情况下,你应该只在输入不是数字时返回false :
if(!isNumberKey(event)) { // validate input
return false; // it's not a number, so prevent default action (do nothing)
}
calc_exchange(); // it was a number, copy the value
唯一的问题是,在执行calc_exchange
时,输入的数字尚未插入到文本框的值中。不过,您可以监听其他事件,比如用户输入完成的时间:
<input type="text" name="no_of_units" id="no_of_units" size="5"
onkeypress="return isNumberKey(event);"
onchange="calc_exchange();" >