在html中将函数从.js传递给onBlur

时间:2014-02-11 03:50:04

标签: javascript html

我的.js中有这个功能,我想把它放进我的onBlur,但是我没有太多运气让它运转起来。

的.js     var error =“”;

function first(first)
{
    if(first == "")
    {
        error += "\nPlease enter your name";
        first.focus();
    }
    return first;
}
function validateAll()
{
    if (!error == "")
    {
        alert(error);
        return false;
    }
}

HTML

<p>First Name*:
<input type="textbox" name="first" id="first" onBlur="this.value=trim(this.value); first(this.value)" onkeyup='capitalize(this)'></p>

<p><input type="button" value="Proccess Payment" onClick="return validateAll();"/></p>

基本上我正在验证.js中名字的文本框,将其转换为HTML并将其放入onBlur,然后在点击时验证它。

2 个答案:

答案 0 :(得分:1)

<html>

<head>

<title></title>

<script type="text/javascript">
var error = "";
function first(first)
{
    if(first.value == "")
    {
        error = "Please enter your name";
        first.focus();
    }

    return first;
}
function validateAll()
{
    if (error.length>0)
    {
        alert(error);
        return false;
    }
}

</script>
</head>

<body>

<p>First Name*: <input type="textbox" name="first" id="first"
    onBlur="this.value=this.value.trim(); first(this)"
    onkeyup='this.value=this.value.toUpperCase();'></p>

<p><input type="button" value="Proccess Payment"
    onClick="return validateAll();" /></p>

</body>

</html>

尝试此操作并与您的代码进行比较。

答案 1 :(得分:0)

首先,我要求你不要使用相同的名称作为一个函数,它的参数就像你使用“first”一样。

function first(first)  ---->  function setFocus(element)

其次,看起来您正在检查传入“第一个”函数的参数是否为空,然后设置焦点。我很确定你想要看到的元素不是空的。

if(first == "")    ---->  if(element != "")

第三,您应该将trim操作合并到适当的回调中。目前,每次点击都会运行修剪,但您没有任何使用该值的代码。因此,当您有一个需要输入值的函数时,请修剪该代码中的值。