2016-04-27 54 views
1

我正在使用下面的函数在输入的数字不是整数时生成警报。但我也需要清除HTML表单。我用id.value= "";,但没有奏效。任何建议,欢迎:如何在生成警报后清除HTML输入标记

function myFunction(id) { 
 
    var x = parseInt(document.getElementById(id).value); 
 
    if (!(x === parseInt(x, 10))) { 
 
    alert("Empployee ID can be integer numbers only."); 
 
    id.value = ""; 
 
    } else { 
 

 
    } 
 
}
<div class="header1"> 
 
    <input type="text" id="ename" onblur="myFunction('ename')" name="name" placeholder="Enter Employee ID" required="" /> 
 
</div>

+0

-1我会建议你做一些代码的调试:一个庸俗的console.log() ,或者使用JavaScript调试器(包含在每个主要的浏览器中)都会给你带来问题。 – reallynice

回答

0

您在id值属性设置为空字符串。 idstring。因此,它不起作用,您需要在id属性等于函数参数的文档中的某处放置空字符串。

你需要使用:

document.getElementById(id).value = ""; 
+0

谢谢。有用。 – user3250190

+0

@ user3250190我希望你知道它为什么不起作用。请接受我的答案,如果它帮助:) –

2

id.value不是一个HTML元素。您正在尝试去id变量的value属性的访问......像这样的事情"ename".value

试试这个:

document.getElementById(id).value = 'VALUE'; 

function myFunction(id) { 
 
    
 
    var x = parseInt(document.getElementById(id).value); 
 
    
 
    if (!(x === parseInt(x, 10))) { 
 
    
 
    alert("Empployee ID can be integer numbers only."); 
 
    document.getElementById(id).value = ""; 
 
    } 
 
    else { 
 

 
    } 
 
}
<div class="header1"> 
 
    <input type="text" id="ename" onblur="myFunction('ename')" name="name" placeholder="Enter Employee ID" required="" /> 
 
</div>

0

不能使用id.value 因为传递给你的id函数是一个字符串。 既然你已经通过了id那么也许你可以使用:

document.getElementById(id).value = "";

回答解释

+0

嗨,欢迎来到堆栈溢出。虽然这可能会回答这个问题,但它可以帮助OP了解您是否可以解释OP的代码不起作用以及代码如何修复它。 –