Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在javascript函数内获取HTML元素,但is获取该元素的属性_Javascript_Html - Fatal编程技术网

无法在javascript函数内获取HTML元素,但is获取该元素的属性

无法在javascript函数内获取HTML元素,但is获取该元素的属性,javascript,html,Javascript,Html,我编写了一个简单的代码,试图验证名称字段,如果它无效,我将使它旁边的标签可见,并在那里显示错误 Javascript函数是: function ValidateName(id) { var error = ""; var illegalChars = /[^a-zA-Z ]/; // allow alphabets and whitespace only var labelId = ""; if(id=="fromName") labelId="lb

我编写了一个简单的代码,试图验证名称字段,如果它无效,我将使它旁边的标签可见,并在那里显示错误

Javascript函数是:

function ValidateName(id) {
    var error = "";
    var illegalChars = /[^a-zA-Z ]/; // allow alphabets and whitespace only
    var labelId = "";

    if(id=="fromName")
      labelId="lblFromName";
    else
      labelId="lblToName";

    if (id.value == "") {   
        error = "Please enter the name\n";
        document.getElementById(labelId).hidden=false;
        document.getElementById(labelId).innerHTML=error;
        id.style.borderColor="#dd4b39";
        return false;
    } else if (illegalChars.test(id.value)) {
        error = "Contains illegal characters\n";
        alert(error);
        document.getElementById(labelId).hidden=false;
        document.getElementById(labelId).innerHTML=error;
        id.style.borderColor="#dd4b39";
        return false;
    } else if ((id.value.length < 3) || (id.value.length > 35)) {
        error = "Please enter atleast 3 characters\n";
        alert(error);       
        document.getElementById(labelId).hidden=false;
        document.getElementById(labelId).innerHTML=error;
        id.style.borderColor="#dd4b39";
        return false;
    } 
}
此代码不起作用。。。我试着调试了很多次,发现当我试着只提醒id时,它会显示对象HTMLInputElement;但当我尝试打印id.placeholder时,它成功地打印为Name。你能告诉我我到底做错了什么吗


谢谢

试试这样的

案例1

HTML代码

    <input id="my_txt" type="text" value="ABC" onchange="ValidateName(this)">
<input id="my_txt" type="text" value="ABC" onchange="ValidateName(this.id)">
案例2

HTML代码

    <input id="my_txt" type="text" value="ABC" onchange="ValidateName(this)">
<input id="my_txt" type="text" value="ABC" onchange="ValidateName(this.id)">
onBlur=ValidateNamefromName

当代码需要字符串时,您正在传递fromName变量

添加引号以将其更改为:

onBlur="ValidateName('fromName')"

ValidateNameid中的id是什么?下面会调用它:检查我的答案,代码将如下onBlur=ValidateName'fromName'