2010-04-06 12 views
6

मैं यह जांचने की कोशिश कर रहा हूं कि कोई फ़ॉर्म इनपुट कोई मूल्य है (इससे कोई फर्क नहीं पड़ता कि मूल्य क्या है) ताकि मैं सबमिट करने पर कार्रवाई URL पर मान जोड़ सकूं मौजूद। मुझे मान जोड़ने से पहले पैरा का नाम जोड़ना होगा, और किसी भी मूल्य के बिना "पी =" जैसे रिक्त पैराम नाम को छोड़कर पेज को गड़बड़ कर दें।फॉर्म इनपुट के मूल्य की जांच कैसे करें

function getParam() { 

// reset url in case there were any previous params inputted 

    document.form.action = 'http://www.domain.com' 

    if (document.getElementById('p').value == 1) { 
     document.form.action += 'P=' + document.getElementById('p').value; 
    } 

    if (document.getElementbyId('q').value == 1) { 
     document.form.action += 'Q=' + document.getElementById('q').value; 
    } 

} 

और फार्म:

यहाँ मेरी कोड है

<form name="form" id="form" method="post" action=""> 
    <input type="text" id="p" value=""> 
    <input type="text" id="q" value=""> 
    <input type="submit" value="Update" onClick="getParam();"> 
</form> 

मैं मूल्य == 1 की स्थापना सोचा करना होगा एक साधारण से मौजूद है, जो सबमिट मूल्य की परवाह किए बिना जांच मौजूद नहीं है था, लेकिन मुझे लगता है कि मैं गलत हूँ।

इसके अलावा, मैं कथन का उपयोग कर रहा हूं, लेकिन मेरा मानना ​​है कि यह खराब कोड है, क्योंकि मेरे पास कोई और नहीं है। शायद, एक स्विच स्टेटमेंट का उपयोग करके, हालांकि मुझे यकीन नहीं है कि मैं इसे कैसे सेट अप करूंगा। शायद:

switch(value) { 
    case document.getElementById('p').value == 1 : 
     document.form.action += 'P=' + document.getElementById('p').value; : 
    case document.getElementById('q').value == 1 : 
     document.form.action += 'Q=' + document.getElementById('q').value; break; 
} 
+0

तुम कुछ भी प्रस्तुत करने नहीं किया जाएगा आपके इनपुट क्षेत्रों के नाम नहीं है, तो जाँच की तुलना में बेहतर। – kennebec

+0

सच है, लेकिन इस मामले में फॉर्म केवल यूआरएल को अपडेट करने के लिए है और चूंकि मैं आईडी द्वारा उन इनपुट के मानों को पकड़ रहा हूं, यह वास्तव में आवश्यक नहीं है। – Choy

+0

आपको एहसास है कि आप अपनी विधि को 'GET' में बदल सकते हैं, और मूल्य क्वेरीस्ट्रिंग में जोड़ दिए जाएंगे? आप बिना किसी समस्या के खाली मूल्य सर्वर-साइड को संभालने में सक्षम होना चाहिए; आपका क्या मतलब है * पृष्ठ को गड़बड़ * *? – RedFilter

उत्तर

13
var val = document.getElementById('p').value; 
if (/^\s*$/.test(val)){ 
    //value is either empty or contains whitespace characters 
    //do not append the value 
} 
else{ 
    //code for appending the value to url 
} 

पी.एस .: इसका खिलाफ value.length क्योंकि ' '.length = 3.

+1

यह विपरीत काम करता प्रतीत होता है। जब मैं फ़ील्ड को खाली छोड़ देता हूं तो यह पी = को बिना किसी मूल्य के जोड़ता है (क्योंकि यह खाली है) और जब मैं कुछ टाइप करता हूं, तो यह कुछ भी शामिल नहीं करता है। – Choy

+0

:) जब आप 'if' क्लॉज का मूल्यांकन 'झूठा' –

+1

पर मूल्यांकन करना है, तो क्यों न केवल उसमें उलटा जाए, क्योंकि एक शाखा खाली हो जाएगी ?, उदा। 'अगर (!/^ \ s * $ /। परीक्षण (वैल)) {// ...' – CMS

संबंधित मुद्दे