2010-08-23 14 views
39

जावास्क्रिप्ट को पास करने के लिए मुझे HTML फॉर्म का मूल्य कैसे प्राप्त हो सकता है?जावास्क्रिप्ट - एचटीएमएल फॉर्म मान प्राप्त करना

क्या यह सही है? मेरी स्क्रिप्ट टेक्स्टबॉक्स से दो तर्क लेती है, एक ड्रॉपडाउन बॉक्स से।

<body> 
<form name="valform" action="" method="POST"> 

Credit Card Validation: <input type="text" id="cctextboxid" name="cctextbox"><br/> 
Card Type: <select name="cardtype" id="cardtypeid"> 
    <option value="visa">Visa</option> 
    <option value="mastercard">MasterCard</option> 
    <option value="discover">Discover</option> 
    <option value="amex">Amex</option> 
    <option value="diners">Diners Club</option> 
</select><br/> 
<input type="button" name="submit" value="Verify Credit Card" onclick="isValidCreditCard(document.getElementById('cctextboxid').value,document.getElementById('cardtypeid').value)" /> 
</body> 
+1

आप वास्तव में "एचटीएमएल कोड में एक फार्म का मूल्य" से क्या मतलब है? –

उत्तर

54

HTML:

<input type="text" name="name" id="uniqueID" value="value" /> 

जे एस:

var nameValue = document.getElementById("uniqueID").value; 
+6

@ शॉर्ट 876: क्या आपने इसे स्वयं परीक्षण किया था? o_0 यह निर्धारित करने का एक अच्छा तरीका होगा कि आपने यह सही किया है या नहीं। –

+0

हाँ, लेकिन यह सिर्फ एक सच्चा/झूठा लौटाता है और मुझे यकीन नहीं है कि यह कैसे निर्धारित किया जाए कि फ़ंक्शन को भी बुलाया गया था या नहीं। इस प्रकार आप मदद कर सकते हैं। – user377419

+0

मैंने इसे आजमाया, लेकिन 'nameValue' डिफ़ॉल्ट मान है और उपयोगकर्ता द्वारा दर्ज नहीं किया गया है। –

-3

जावास्क्रिप्ट तर्क का अर्थ जावास्क्रिप्ट फ़ंक्शन तर्क है? यदि हां:

आप कुछ फ़ंक्शन लिख सकते हैं। जो आपके फॉर्म को {"name":"value"} जैसे ऑब्जेक्ट में क्रमबद्ध करता है और इसके बाद आप इस ऑब्जेक्ट को फ़ंक्शन में पास कर सकते हैं।

20

document.forms अपने पृष्ठ के प्रपत्रों की एक सरणी शामिल होंगे। आप अपने इच्छित फॉर्म को ढूंढने के लिए इन रूपों के माध्यम से लूप कर सकते हैं।

var form = false; 
var length = document.forms.length; 
for(var i = 0; i < length; i++) { 
    if(form.id == "wanted_id") { 
     form = document.forms[i]; 
    } 
} 

प्रत्येक फॉर्म में एक तत्व सरणी है जिसे आप इच्छित डेटा ढूंढने के लिए लूप कर सकते हैं।

function myFunction() { 
    var elements = document.getElementById("myForm").elements; 
    var obj ={}; 
    for(var i = 0 ; i < elements.length ; i++){ 
     var item = elements.item(i); 
     obj[item.name] = item.value; 
    } 

    document.getElementById("demo").innerHTML = JSON.stringify(obj); 
} 

डेमो here पाया जा सकता है: तुम भी नाम

var wanted_value = form.someFieldName.value; 
jsFunction(wanted_value); 
8

यहाँ उन तक पहुंच सक्षम होना चाहिए W3Schools से एक उदाहरण है।

+3

बस एक चेतावनी, अगर कोई रेडियो बटन या चेकबॉक्स जैसे अन्य प्रकार के इनपुट के चयनित मान प्राप्त करना चाहता है, तो यह वही नहीं करेगा जो आप चाहते हैं। – Sean

8

आप (जैसे उन है कि एक HTTP POST का उपयोग कर भेज दिया जायेगा) के रूप में प्रपत्र मूल्यों प्राप्त करना चाहते हैं, तो आप उपयोग कर सकते हैं

जावास्क्रिप्ट

new FormData(document.querySelector('form')) 

फार्म serialize (https://code.google.com/archive/p/form-serialize/)

serialize(document.forms[0]); 

jQuery

$("form").serializeArray() 
+5

आपका पहला उदाहरण 'फॉर्मडाटा' स्वयं कुछ भी नहीं करता है .. आपको अभी भी फॉर्म से मूल्य प्राप्त करने की आवश्यकता है। – putvande

+1

मुझे विश्वास है कि यह गलत है। यदि फॉर्मडेटा प्रारंभ करते समय आप एक फॉर्म तत्व निर्दिष्ट करते हैं तो यह मानों को सही तरीके से पुनर्प्राप्त करेगा। http://codepen.io/kevinfarrugia/pen/Wommgd –

+1

फॉर्मडेटा ऑब्जेक्ट स्वयं मान नहीं है। आपको अभी भी 'फॉर्मडाटा' के माध्यम से कॉल करने और फिर से कॉल करने की आवश्यकता है।मूल्यों को पुनर्प्राप्त करने के लिए प्रविष्टियां() '। इसके अतिरिक्त, 'FormData.entries() 'सफारी, एक्सप्लोरर या एज में उपलब्ध नहीं है। https://developer.mozilla.org/en-US/docs/Web/API/FormData – dave

1
<input type="text" id="note_text" /> 

let value = document.getElementById("note_text").value; 
संबंधित मुद्दे