2012-07-25 20 views
52

प्राप्त करें मैं एक ही पृष्ठ पर कई तत्वों को गतिशील रूप से उत्पन्न करने के लिए एक jquery टेम्पलेट का उपयोग कर रहा हूं। प्रत्येक तत्व इसJquery फॉर्म फ़ील्ड मान

<div id ="DynamicValueAssignedHere"> 
    <div class="something">Hello world</div> 
    <div class="formdiv"> 
     <form name="inpForm"> 
      <input type="text" name="FirstName" /> 
      <input type="submit" value="Submit" /> 
     </form> 
    </div> 
</div> 

मैं सबमिट पर फ़ॉर्म को संसाधित करने के लिए Jquery का उपयोग करना चाहता हूं। अगर कुछ गलत होना चाहिए तो मैं फॉर्म वैल्यू को उनके पिछले मानों में वापस करना चाहूंगा। मेरा प्रश्न है Jquery का उपयोग कर इनपुट बॉक्स का मूल्य कैसे प्राप्त कर सकता हूं? उदाहरण के लिए, मैं

var something = $(#DynamicValueAssignedHere).children(".something").html(); 

कर एक इसी तरह से वर्ग "कुछ" के साथ div का मूल्य प्राप्त कर सकते हैं, मैं पाठ बॉक्स के मान प्राप्त करने में सक्षम होना चाहता हूँ। अभी, मैं

var text = $(#DynamicValueAssignedHere).children(".formdiv").findnext('input[name="FirstName"]').val(); 

की कोशिश की, लेकिन यह काम करने

+3

एक बार के लिए, सादे जावास्क्रिप्ट आसान हो सकता है: '$ ('इनपुट') [ 0] .form.FirstName.value' फ़ील्ड के मान तक पहुंच जाएगा – cnlevy

उत्तर

103

आप value attribute उपयोग करने के लिए अपने मूल्य

<input type="text" name="FirstName" value="First Name" /> 

कोशिश प्राप्त करने के लिए -

var text = $('#DynamicValueAssignedHere').find('input[name="FirstName"]').val(); 
,210
+6

@curiouspanda: बस एक टिप। यदि "नाम" मान अद्वितीय हैं, तो आपको $ ('# DynamicValueAssignedHere') का उपयोग करने की आवश्यकता नहीं है। बस $ ('इनपुट [name = "फर्स्टनाम"]' का उपयोग करके सीधे जाएं)। Val()।मैं अभी भी घटकों से निपटने के लिए आईडी का उपयोग करना पसंद करता हूं। – davidbuzatto

+2

@davidbuzatto - नाम मान अद्वितीय नहीं हैं। बाहरीतम div के लिए केवल आईडी अद्वितीय है। हालांकि डीपक्स समाधान काम करता था। –

39

यह आप क्या कर रहे हैं तुलना में बहुत सरल हो सकता है नहीं लगता है।

HTML:

<input id="myField" type="text" name="email"/> 

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

// getting the value 
var email = $("#myField").val(); 

// setting the value 
$("#myField").val("new value here"); 
+0

मैं फ़ील्ड के लिए आईडी का उपयोग नहीं कर सकता क्योंकि मेरे पृष्ठ में एक ही तत्व के साथ कई रूप हो सकते हैं (मैं jquery repeater temp का उपयोग कर रहा हूं लेट्स) –

+0

@curiouspanda: ठीक है, तो आप इसे डिप्क्स अप्राच का उपयोग करके कर सकते हैं। पुनरावर्तक टेम्पलेट का उपयोग करने के बावजूद, मुझे लगता है कि आप अद्वितीय आईडी के साथ काम कर सकते हैं, शायद प्रत्येक फ़ील्ड सेट घटक आईडी के लिए उपसर्ग सेट कर सकते हैं। – davidbuzatto

+0

@curiouspanda क्या डायनामिक आईडी में कुछ सामान्य है? – undefined

1

अगर आप आदानों आप केवल इस उपयोग करने की आवश्यकता की आईडी पता:

var value = $("#inputID").val(); 
2
var textValue = $("input[type=text]").val() 

यह सब पाठ बॉक्स के सभी मूल्य मिलेगा। आप बच्चों, फर्स्टचिल्ड इत्यादि जैसे तरीकों का उपयोग कर सकते हैं। फॉर्म $ ('फॉर्म [name = form1] इनपुट [टाइप = टेक्स्ट]') लक्ष्यीकरण तत्वों के लिए आईडी का उपयोग करना आसान है, लेकिन यदि यह पूरी तरह से गतिशील है तो आप कर सकते हैं जेएस के साथ तब सभी इनपुट मानों को लूप करें।

5

एक वैकल्पिक दृष्टिकोण क्षेत्र एचटीएमएल को खोजे बिना:

var $form = $('#' + DynamicValueAssignedHere).find('form'); 
var formData = $form.serializeArray(); 
var myFieldName = 'FirstName'; 
var myFieldFilter = function (field) { 
    return field.name == myFieldName; 
} 
var value = formData.filter(myFieldFilter)[0].value; 
0

$("form").submit(function(event) { 
 
     ///First Field Value 
 
     var firstfield_value = event.currentTarget[0].value; 
 
    ///Second Field Value 
 
     var secondfield_value = event.currentTarget[1].value; 
 
     
 
     alert(firstfield_value); 
 
     alert(secondfield_value); 
 
     event.preventDefault(); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action="" method="post" > 
 
<input type="text" name="field1" value="value1"> 
 
<input type="text" name="field2" value="value2"> 
 
</form>

+1

जबकि यह कोड स्निपेट प्रश्न हल कर सकता है, [एक स्पष्टीकरण सहित] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और वे लोग आपके कोड सुझाव के कारणों को नहीं जानते हैं। कृपया व्याख्यात्मक टिप्पणियों के साथ अपने कोड को भीड़ न करने का प्रयास करें, क्योंकि इससे कोड और स्पष्टीकरण दोनों की पठनीयता कम हो जाती है! – FrankerZ

0
// for getting the value from input type text 
var value = $("input[type=text]").val(); 
// for getting the value from by input type name 
var textValue = $("input[name=text]").val() 
संबंधित मुद्दे