2013-10-12 135 views
0

我正试图实现在单个警报消息中显示多个验证错误消息的功能。单个警报消息中的多个表单验证错误消息javascript

我有三个文本字段,检查用户是否在该文本字段中输入值或不。 如果用户没有输入任何值并尝试提交表单,我必须向用户显示三个字段是强制性的。

一段代码如下:

function validateInput(ele, note, Name) 
{ 
var val = ele.value;  
if (val == '') 
{  
    note = note +Name+"element can not be Empty; \n"; 
    return false; 
} 
return true; 
} 

function validateForm() { 
var note = ""; 
var ele1 = validateInput(document.getElementById('input1'), note, 'From'); 
var ele2 = validateInput(document.getElementById('input2'), note, 'To'); 
var ele3 = validateInput(document.getElementById('input3'), note, 'CC'); 
alert(note); 
return (ele1 && ele2 && ele3); 
} 

回答

0

字符串不是对String对象实例的引用。

你应该申报note VAR在父上下文:

var note = ''; 
function validateInput(ele, Name) 
{ 
var val = ele.value;  
if (val == '') 
{  
    note = note +Name+"element can not be Empty; \n"; 
    return false; 
} 
return true; 
} 

function validateForm() { 
note = ""; 
var ele1 = validateInput(document.getElementById('input1'), 'From'); 
var ele2 = validateInput(document.getElementById('input2'), 'To'); 
var ele3 = validateInput(document.getElementById('input3'), 'CC'); 
alert(note); 
return (ele1 && ele2 && ele3); 
} 
+0

每次按'note = note + Name +“元素都不能为空时,'note'的值将被覆盖; \ n”;'。改用'+ ='。但我会避免使用全局变量,除非绝对必要(在这种情况下不是这样)。 –

+0

'note = note +'严格等于'note + ='。我同意全局变量,这就是为什么我谈到“父母情境”。父上下文应位于名称空间下。 – Ulflander

+0

嗨Ulflander&muscial_coder,都工作正常。我不能选择这两个答案,也不能赞成(所需声望不存在)。感谢您的投入。 – Venkat

0

你可以使用一个对象通过引用传递值,但对于本它是没有必要的。试试这个:

function validateInput(ele, Name) 
{ 
    var val = ele.value;   
    return val == '' ? note +Name+"element can not be Empty; \n" : ""; 
} 

function validateForm() { 
var note = ""; 
note += validateInput(document.getElementById('input1'), 'From'); 
note += validateInput(document.getElementById('input2'), 'To'); 
note += validateInput(document.getElementById('input3'), 'CC'); 
var isValid = note == ""; 
if(!isValid) 
    alert(note); 
return isValid; 
} 
+0

感谢您的宝贵inputs.sure我会尝试。 – Venkat