निम्नलिखित साधारण से फ़ॉर्म पर विचार करें:जावास्क्रिप्ट/HTML फ़ॉर्म क्षेत्र नामकरण मुद्दा
<form method="GET" action="handle.php">
<input type="hidden" name="action" value="search">
</form>
फ़ॉर्म सबमिशन एक ajax कॉल में जावास्क्रिप्ट (IUI) द्वारा किया जाता है। सभी फ़ील्ड फॉर्म से ठीक से इकट्ठे होते हैं। जावास्क्रिप्ट तब AJAX कॉल को "form.action" भेजना चाहता है।
यह वह जगह है जहां मेरी समस्या शुरू होती है। ऑब्जेक्ट फॉर्म HTMLFormElement प्रकार का है। कार्रवाई फ़ॉर्म की प्रॉपर्टी टाइप स्ट्रिंग का होना चाहिए और इसमें "handle.php" होना चाहिए। कुछ घंटों के डिबगिंग के बाद, मैंने देखा कि फॉर्म.एक्शन अब HTMLInputElement प्रकार का है।
मेरा प्रश्न: क्या यह उचित जावास्क्रिप्ट व्यवहार है? मैं कभी भी फॉर्म प्रपत्र के नाम के साथ एक फॉर्म फ़ील्ड को परिभाषित नहीं करता था, ऐसा होगा। इस बीच मैंने अपने क्षेत्र को अलग-अलग नाम देकर इस मुद्दे को हल किया।
किसी भी सलाह के लिए अग्रिम धन्यवाद ...
मेरी समस्या को प्रदर्शित करने का एक आसान तरीका मिले।
<form action="test.php">
<input type="hidden" name="action" value="test">
<input type="button" onclick="alert(this.form.action);">
</form>
और रूप है कि उचित है:: सबसे पहले समस्या के साथ प्रपत्र
<form action="test.php">
<input type="hidden" name="NOT_AN_ATTRIBUTE_NAME" value="test">
<input type="button" onclick="alert(this.form.action);">
</form>
पहले में, पॉपअप राज्यों "[वस्तु HTMLInputElement]", दूसरी बार में: "http://localhost/test.php "।
क्या आप जावास्क्रिप्ट कोड को भी – sunn0
जोड़ सकते हैं, मुझे नहीं पता कि जेएस के लिए उचित है लेकिन ऐसा लगता है कि यह आपके द्वारा वर्णित तरीके से है, क्या इनपुट नाम को किसी अन्य नाम से इनपुट नाम बदलने के लिए बड़ा मुद्दा है? – Chris
@ क्रिस: स्पष्ट रूप से मैंने इसे अपने क्षेत्र का नाम बदलकर हल कर लिया है। लेकिन AJAX कॉल में जावास्क्रिप्ट का उपयोग कर फॉर्म पोस्ट करते समय समस्या बनी हुई है। फॉर्म फ़ील्ड में फॉर्म विशेषता के समान नाम नहीं हो सकता है। – djBo