2012-12-18 12 views
5

पर मूल रूप से गुजर रहा है हाय मैं ऑनक्लिक ईवेंट पर जावास्क्रिप्ट फ़ंक्शन पर चर को पारित करने का प्रयास कर रहा हूं। मैं निम्नलिखित तरीके से कोशिश कर रहा हूं, मुझे जावास्क्रिप्ट फ़ंक्शन में इनपुट मान नहीं मिल रहा है। (मुझे 1 की चेतावनी की उम्मीद है।) क्या यह करने का सही तरीका है? कृपया मदद करे।ऑनक्लिक घटना पर मूल रूप से जावास्क्रिप्ट फ़ंक्शन

<head> 
    <script> 
     function submit_value(form) { 
      alert(form.ip.value); 
     } 
    </script> 
</head> 
<table> 
    <tr> 
     <form> 
      <td> 
       <input id="ip" type="text" value="1"> 
      </td> 
      <td> 
       <a href="javascript:;" onClick="submit_value(this)">Button</a> 
      </td> 
     </form> 
    </tr> 
</table> 

उत्तर

3

आपकी स्क्रिप्ट पता नहीं है क्या form है। आपको इसके बजाय document.forms[0].ip.value निर्दिष्ट करना होगा।

यदि दस्तावेज़ पर एक से अधिक रूप हैं तो यह बेहतर होगा यदि आप फॉर्म तत्व को पहले चर में संग्रहीत करते हैं। आपको लगता है कि के लिए फार्म पर एक आईडी हो सकता है ...

<form id="formID">

और submit_value समारोह में आप कर सकते हैं

var myForm = document.getElementById('formID'); alert(myForm.ip.value);

संपादित करें:

आप this.form उपयोग कर सकते हैं एंकर टैग पर क्लिक करें।

+1

बेहतर अपने फार्म को कोई नाम दें और उसके बाद के लिए है: वह लगभग सही तरीके से सब कुछ बना document.formName.ip.value का उपयोग करें – Ankit

+0

प्वाइंट एन हो सकता है इस तरह गतिशील रूपों की संख्या। document.forms [0] .ip.value यह जानना होगा कि मैं किस फॉर्म को भेजना चाहता हूं। मैं फॉर्म पैरेंट को एंकर टैग पर पास करना चाहता हूं। मैं यह कैसे करुं? – user1051505

0

यह करने के लिए समारोह बदलें:

function submit_value(form) { 
     alert(document.getElementById('ip').value); 
    } 

जब आप submit_value(this) लिखते हैं, this का मूल्य वास्तव में तत्व <a> ही है, नहीं रूप है।

+0

प्वाइंट इस तरह के गतिशील रूपों की संख्या हो सकती है। मैं फॉर्म पैरेंट को एंकर टैग पर पास करना चाहता हूं। मैं यह कैसे करुं? – user1051505

+1

यदि कई गतिशील रूप हैं, तो आपको 'id =" ip "का उपयोग नहीं करना चाहिए क्योंकि आईडी को अद्वितीय –

+0

ठीक होना चाहिए, कक्षा को – user1051505

0

मुझे लगता है कि आप jquery का उपयोग कर सकते हैं। चयनकर्ता इसके साथ बहुत सरल हैं।

बदलें

<form> 
     <td> 
      <input id="ip" type="text" value="1"> 
     </td> 
     <td> 
      <a href="" class="mySubmitButton">Button</a> 
     </td> 
</form> 

और करने के लिए

<form> 
     <td> 
      <input id="ip" type="text" value="1"> 
     </td> 
     <td> 
      <a href="javascript:;" onClick="submit_value(this)">Button</a> 
     </td> 
</form> 

से नीचे दिए गए फॉर्म एचटीएमएल फिर अपने जे एस दिखेगा तरह

$('.mySubmitButton').click(function() { 

    var inputBox = $(this).prev(); 
    alert(inputBox.val()); 
    return false; //This prevents the default function submit . Similar to event.preventDefault 
}); 
0

JQuery हर जगह है। आपको JQuery की आवश्यकता नहीं है। लोग डीओएम ऑब्जेक्ट मॉडल के बारे में क्यों भूल जाते हैं?

<head> 
 
     <script> 
 
      function submit_value() { 
 
       alert(document.forms[0].ip.value); 
 
      } 
 
     </script> 
 
    </head> 
 
    <table> 
 
     <tr> 
 
      <form> 
 
       <td> 
 
        <input name="ip" type="text" value="1"> 
 
       </td> 
 
       <td> 
 
        <a href="javascript:;" onClick="submit_value()">Button</a> 
 
       </td> 
 
      </form> 
 
     </tr> 
 
    </table>

या आप जोड़ सकते हैं फार्म आईडी

<head> 
 
     <script> 
 
      function submit_value() { 
 
       alert(document.forms.formid.ip.value); 
 
      } 
 
     </script> 
 
    </head> 
 
    <table> 
 
     <tr> 
 
      <form id='formid'> 
 
       <td> 
 
        <input name="ip" type="text" value="1"> 
 
       </td> 
 
       <td> 
 
        <a href="javascript:;" onClick="submit_value()">Button</a> 
 
       </td> 
 
      </form> 
 
     </tr> 
 
    </table>