2016-04-21 46 views
-2

我創建了一個JavaScript函數,我想要存儲表單(電子郵件和名稱)的兩個值。目前,我已經得到它的工作,所以當按下按鈕時,只有一個用戶輸入值被推送到該功能。我在如何獲得兩個價值方面掙扎。在document.getElementById將多個用戶輸入推送到JavaScript函數

<script> 
    var _itq = { 
     push: function() { 
      console.log.apply(console, arguments); 
     } 
    }; 

    _itq.push("_itq", "initialised", "ok"); 
</script> 
+0

表達'的document.getElementById( '姓名' + 'signupEmail')'不會產生既元素的引用('name'和'signupEmail'),你已經收集他們的值正確: '_itq.push(document.getElementById('name').value + document.getElementById('signupEmail').value).value)' – haim770

回答

-1

不能同時選擇:

當前的代碼顯示消息:

Uncaught TypeError: Cannot read property 'value' of null

HTML:

<form> 
<!-- email --> 
    <div class="form-group"> 
     <input class="form-control" id="signupEmail" type="email" placeholder="Your E-mail" required > 
    </div> 
<!-- name --> 
    <div class="form-group"> 
    <div>   
     <input type="text" class="form-control" id="name" placeholder="Your Name" maxlength="20" required> 
    </div> 
    <div> 

<!-- Button --> 
    <div class="form-group"> 
     <button type="submit" class="btn btn-block btn-info" onclick="_itq.push(document.getElementById('name'+'signupEmail').value)">Sign Up</button> 
    </div> 
</form> 

的JavaScript。你正在創建一個新的ID來尋找名爲「namesignupEmail」。相反,推動兩個電話

<button type="submit" class="btn btn-block btn-info" onclick="_itq.push(document.getElementById('name').value, document.getElementById('signupEmail').value)">Sign Up</button> 
+0

這已經奏效了,謝謝。能夠解釋如何獲取輸入的特定字符(名稱的第一個首字母,而不是整個字符串)? – MHamer5

+0

'value'只是一個字符串。您可以使用[substr](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr)獲得首字母縮寫:'document.getElementById('name')。value .substr(0,1)' –

0

你有獨立的選擇和改變從類型按鈕類型=「提交」,鍵入=「按鈕」,類似這樣的---

<button type="button" class="btn btn-block btn-info" onclick="_itq.push(document.getElementById('name').value, document.getElementById('signupEmail').value)">Sign Up 

0

我想從你的HTML代碼中分離出你的JS的一個開始:

在一個新的JS文件,添加一個事件偵聽器的形式...

var form = document.querySelector('form'); 
form.addEventListener('submit', submitForm, false); 

...然後一個函數抓取表單元素,然後遍歷它們,調用_itq與值參數。

function submitForm(e) { 
    e.preventDefault(); 
    var selectors = this.querySelectorAll('#signupEmail, #name'); 
    [].slice.call(selectors).forEach(function (el) { 
    _itq.push(el.value); 
    }); 
} 

DEMO