2017-02-19 48 views
0

重複的JavaScript表單字段我正在一個網站類,只是HTML和CSS上,而是試圖用JavaScript來玩弄我自己。在這一點上,我有一個表單,我希望所有的字段在發送之前通過彈出窗口重複給用戶。在這一點上,我沒有什麼可以進一步實際發送信息,只是試圖讓實際彈出窗口完成,但在我的生活中,我似乎無法到達任何地方。 至於代碼:在彈出

<form name="submitForm" id="submitForm" method="post" action="#"> 
    <textarea style="width: 145px" name="Name" id="nameTA" placeholder="Your name"></textarea><br/> 
    <textarea style="width: 145px" name="Contact Information" id="contactInfoTA" placeholder="Your contact information"></textarea><br/> 
    <textarea name="Message" style="height: 200px; width: 145px" id="messageTA" placeholder="Your Message"></textarea><br/> 
    <input type="submit" name="submit" id="submitButton" onsubmit="send();" value="Send Message"></input> <br/> 
</form> 

是原來的形式和JS是:

function send() { 
var nameJS = document.getElementById('nameTA').textContent; 
var contactJS = document.getElementById('contactInfoTA').textContent; 
var messageJS = document.getElementById('messageTA').textContent; 
if(nameJ === "" || contactJ === "" || messageJ === "") 
{ 
    alert("Please fill out all fields."); 
} 
else 
{ 
    alert(" Name: " + nameJS.value + " \n Contact Info: " + contactJS.value + " \n Message: " + messageJS.value + " \n Submitted!"); 
} 

}

我試着運行這個本地或altervista,的document.getElementById() 。值; .textContent;我在控制檯旁邊沒有任何信息,並且我的想法已經耗盡,所以任何幫助都會很感激 - 可能與onsubmit參數或action =「#」有關?不知道....謝謝!

回答

0

您必須指定在表單上,​​而不是在輸入按鈕的onsubmit事件。

<form name="submitForm" id="submitForm" method="post" action="#" onsubmit="send();"> 
<textarea style="width: 145px" name="Name" id="nameTA" placeholder="Your name"></textarea><br/> 
<textarea style="width: 145px" name="Contact Information" id="contactInfoTA" placeholder="Your contact information"></textarea><br/> 
<textarea name="Message" style="height: 200px; width: 145px" id="messageTA" placeholder="Your Message"></textarea><br/> 
<input type="submit" name="submit" id="submitButton" value="Send Message"></input> <br/> 
</form> 

在你的JS函數裏面的if條件中,你指定的變量名稱是錯誤的。你也沒有像這樣獲得輸入字段的值。你不需要'.textContent'。其他內部的'.value'已經足夠了。此功能也缺少一個結束花括號。 否則你不想檢查條件是否相等。這就是'==='所做的。相反,你試圖做的是檢查相同的值,這可以通過'=='來實現。無論如何,這也不起作用,因爲沒有輸入和空字符串是不一樣的。相反,你可以檢查這些元素是否包含一個值。

function send() { 
    var nameJS = document.getElementById('nameTA'); 
    var contactJS = document.getElementById('contactInfoTA'); 
    var messageJS = document.getElementById('messageTA'); 
    if(!nameJS.value || !contactJS.value || !messageJS.value) { 
     alert("Please fill out all fields."); 
    } else { 
     alert(" Name: " + nameJS.value + " \n Contact Info: " + contactJS.value + " \n Message: " + messageJS.value + " \n Submitted!"); 
    } 
} 
+0

好吧......仍然沒有工作。玩弄警報,看起來像JS不是以某種方式觸發的,而是在單獨的send.js文件中使用它,而不是在實際的if語句中使用。想想我要做的是放棄這個...呃,不是真的,還是必須提交HTML/CSS的課程,但是去掉JS並且開展一個概念驗證的副項目。它可能需要一段時間才能意識到我在錯誤的位置提交了,但我不知道需要多長時間才能認識到===不適用於空條目 - 這不是一個考慮因素。非常感謝! :) –

+0

只要發佈一些更多的代碼,如果你仍然想堅持下去,我會盡力幫助。一切皆有可能!否則,你可以接受答案。 ;) – conste

+0

我正在玩這些警報,發現了一些有趣的東西。表單位於w3data.js附帶的側欄上,而不是實際的主頁本身。即使只是將這個側邊欄頁面上,沒有什麼是雨後春筍般冒出來,但如果我加載頁面側邊欄直接作爲它自己的頁面,警報顯示,所以它是某種被包含的頁面之間的互動和w3data.js –