2014-12-04 115 views
0

我有這個小javascript來驗證表單輸入。JavaScript將警報轉換爲字符串

function validateFormOnSubmit(theForm) { 
var reason = ""; 

    reason += validateEmail(theForm.courriel); 

    if (reason != "") { 
    alert("Some fields need correction:\n" + reason); 
    return false; 
    } 

    return true; 
} 

function trim(s) 
{ 
    return s.replace(/^\s+|\s+$/, ''); 
} 

我試着弄清楚如何獲得「警告」消息作爲字符串,以顯示它以後的頁面上,而不是彈出這個可笑的盒子。看起來很簡單,但我在js中很大。任何幫助表示感謝,謝謝!

回答

0

var alerter; 
 

 
function validateFormOnSubmit(theForm) { 
 
var reason = ""; 
 

 
    reason += validateEmail(theForm.courriel); 
 

 
    if (reason != "") { 
 
    alerter = "Some fields need correction:<br/>" + reason; 
 
    return false; 
 
    } 
 

 
    return true; 
 
} 
 

 
function trim(s) 
 
{ 
 
    return s.replace(/^\s+|\s+$/, ''); 
 
} 
 

 
document.body.innerHTML = alerter;

+0

'alerter'仍將' undefined'。它應該是一個全局變量,或者你應該刪除'var'關鍵字。 – Lekhnath 2014-12-04 17:08:46

+0

是的,你說得對,@Lekhnath。我確定了我的答案。 – 2014-12-04 17:11:01

1

警報()方法是什麼使大彈出框。如果您想保存該值供以後使用,請將其保存到變量中。喜歡的東西:

var message = ""; 
function validateFormOnSubmit(theForm) { 
    var reason = ""; 

    reason += validateEmail(theForm.courriel); 

    if (reason != "") { 
     message = "Some fields need correction:\n" + reason; 
     return false; 
    } 

    return true; 
} 

function trim(s) 
{ 
    return s.replace(/^\s+|\s+$/, ''); 
} 
+0

該腳本正常工作,但消息未顯示 – 2014-12-04 18:08:41

+0

該消息未顯示,因爲沒有任何操作。您需要添加一些代碼來以任何方式顯示消息。一種方法是在HTML中創建特定的div並將消息的值分配給其textContent:http://msdn.microsoft.com/en-us/library/ie/yfc4b32c%28v=vs.94%29.aspx 。 (另外,我編輯的答案是使全球信息,因爲@ Lekhnath建議在不同的答案)。 – Tsa579 2014-12-04 18:24:16

0

如何分配字符串 「窗口」 的屬性:

window.myAlert ="Some fields need correction:\n" + reason); 

然後你可以從任何地方獲得它:

document.body.innerHTML = window.myAlert; 
+0

我得到一個空白頁面,說「未定義」 – 2014-12-04 18:09:09

+0

如果你的「原因」var是空的,它不會被定義,所以你必須說明這一點。 – mopo922 2014-12-04 18:11:57

+0

*「it」我的意思是window.myAlert – mopo922 2014-12-04 18:18:11