2014-01-24 42 views
1

下面我的代碼:獲取輸入值轉換爲<form>直列

<script> 
function getText(text){ 
    alert(text); 
} 
</script> 
<form action="getText(/*here function for get text*/)"> 
    <input type="text" class="text"/> 
    <input type="submit"/> 
    <div></div> 
</form> 

如何與在<form>純JavaScript另有說明得到textarea的價值?

+0

之後採取什麼行動?在textarea鍵盤上? –

+0

是的,我知道這並不重要,我只需要一個獲取textarea文本的功能,不需要指定它的編號 – user3154581

+0

有一個文本區域的名稱標籤,它將被提交 - – user1428716

回答

2

action屬性包含表單將被提交到的URL,而不是JavaScript。

如果要使用JavaScript處理表單數據,則使用bind a submit event handler即可。這將在表單的上下文中觸發,因此您可以通過this訪問表單元素。

您可以通過elements collection訪問表單控件。他們將擁有包含其值的value屬性。

<form action="/some/handler" id="myForm"> 
    <textarea name="myTextArea" class="text"></textarea> 
    <input type="submit"> 
    <div></div> 
</form> 
<script> 
function getText(text){ 
    alert(text); 
} 
function formSubmitHandler(evt) { 
    var textarea = this.elements.myTextArea; 
    getText(textarea.value); 
} 
document.getElementById('myForm').addEventListener('submit', formSubmitHandler); 
</script> 

您不妨致電evt.preventDefault()如果你要與JS完全處理表單處理(JS時可用)。

+0

您的答案很好,但我需要一個內聯解決方案,我將輸入的textarea替換爲清晰,現在檢查我的問題。 – user3154581

+0

從我的第一個評論:「沒有指定它的ID」使用'onsubmit =「yourFunction()」' – epascarello

1

如果你想從輸入值而不使用選擇器,那麼你可以使用這樣的東西, 但請記住,你從輸入標籤獲得的值應該用作表單元素的第一個孩子。

<form action=""> 
    <input type="text" class="text"/> 
    <input type="button" onclick="getText()" value="get value"> 
    <div></div> 
</form> 

<script> 
function getText(text){ 
    var textValue = document.getElementsByTagName('input')[0].value; 
    alert(textValue); 
} 
</script> 

編輯

如果你想從輸入值按下回車鍵後文本,那麼你可以做到這樣。

<form action=""> 
    <input type="text" class="text" onkeydown="getText(event)"/> 
    <div></div> 
</form> 

<script> 
function getText(event){ 
    var textValue = document.getElementsByTagName('input')[0].value; 
    if(event.which == 13){ 
     alert(textValue); 
    } 
} 
</script> 
+1

-1。 – user3154581

+0

@ user3154581請看看編輯答案。 –

+0

onclick?輸入密鑰怎麼樣? – user3154581

0

這裏一個小功能,爲你

function getTextAreaByClass(lookFor) { 
    var i; /* I always define at the top so jslint doesn't carp */ 
    var elems = document.getElementsByTagName("textarea"); 
    for (i in elems) { 
     if((' '+elems[i].className+' ').indexOf(' '+lookFor+' ') > -1) { 
       return elems[i].innerHTML; 
     } 
    } 
    return ""; /* or return false or whatever else you want to denote not found */ 

} 

以上就能把所有的textarea的標籤搜索,尋找一個類相匹配,並且將返回textarea的中的內容。