2010-03-02 9 views
7

मेरे पास एक फॉर्म है, बहुत ही बुनियादी है, और जब मैं एंटर कुंजी दबाता हूं तो फ़ायरफ़ॉक्स में कुछ भी नहीं होता है, लेकिन Google क्रोम में यह सबमिट करता है। अभी तक अन्य ब्राउज़रों की कोशिश नहीं की है ...'एंटर कुंजी' फ़ायरफ़ॉक्स में फॉर्म सबमिट नहीं करेगा, लेकिन क्रोम में होगा, क्यों?

फ़ायरफ़ॉक्स में प्रवेश करते समय कुछ भी नहीं होता है।

सबमिट बटन पर क्लिक करते समय यह दोनों ब्राउज़रों में ठीक काम करता है।

प्रपत्र एक DIV के अंदर है, और प्रपत्र भी जावास्क्रिप्ट है, यहाँ प्रपत्र को सरल बनाया है:

<form id="nav_form_main" name="nav_form_main" action="bincgi/sql_query.php" target="iframe001" method="get" onSubmit="reset_pager();"> 

<input type="button" name="nav_submit" id="nav_submit" value="Search" onClick="reset_and_subm();" style="width: 58px; font-size: 13px;"> 

//some other elements... 

</form> 

और यहाँ है js:

function reset_pager(){ 
    byId("p").value = 0; 
} 
function reset_and_subm(){ 
    byId("p").value = 0; 
    document.forms["nav_form_main"].submit(); 
} 

reset_pager समारोह नहीं बुलाया जाता है बिलकुल ... जो अजीब है क्योंकि यह एक "ऑनसममिट" फ़ंक्शन है। तो ऐसा लगता है कि फॉर्म बिल्कुल सबमिट नहीं किया गया है। हालांकि, लक्षित आईफ्रेम में परिणाम बिना किसी समस्या के ठीक दिखाई देते हैं।

कोई भी विचार?

धन्यवाद

+0

मैं सोच सकता हूं कि फ़ॉर्म के अंदर कुछ गड़बड़ है, मेरे पास बहुत सारे तत्व हैं ... आपको क्या लगता है? –

उत्तर

9

दर्ज के लिए प्रस्तुत केवल शुरू हो रहा है, तो <input type="submit> फार्म पर मौजूद है। आप इस उद्देश्य के लिए एक छिपी हुई एक जोड़ सकते हैं, लेकिन ध्यान रखें कि यह फ़ॉर्म सबमिट करेगा और onclick ईवेंट को बाईपास करेगा जिसे आप कैप्चर करना चाहते हैं। आपको अपना फ़ंक्शन चलाने के लिए onsubmit फ़ॉर्म में कार्रवाई करने की आवश्यकता होगी।

+2

ध्यान दें कि यदि आप '<इनपुट प्रकार =" सबमिट ">' को कुछ 'डिस्प्ले: कोई नहीं;' के साथ छिपाने का प्रयास करते हैं, तो क्रोम एंटर कुंजी को सबमिट करने से रोक देगा। इसके बजाए, आपको इसे "प्रदर्शित" रखना होगा, लेकिन इसे इस तरह से कुछ के साथ विस्मरण में रखें: '<इनपुट प्रकार =" सबमिट करें "शैली =" स्थिति: पूर्ण; बाएं: -10000 पीएक्स; शीर्ष: -10000 पीएक्स; "/>' – brettjonesdev

+1

यह वास्तव में पुरानी पोस्ट है लेकिन ...यह ध्यान दिया जाना चाहिए कि यदि आप सबमिट इनपुट पर नाम विशेषता '<इनपुट प्रकार = "सबमिट करें" नाम = "सबमिट करें" मूल्य = "सबमिट करें" /> 'को परिभाषित करते हैं, तो फॉर्म क्रोम में सबमिट नहीं होगा। कोई सुराग क्यों नहीं। लेकिन मैंने एक घंटे डिबगिंग बिताई, इसलिए मैंने सोचा कि मैं साझा करूंगा। – carruthd

+0

यह कभी भी एक बात नहीं थी। अब मैं अचानक उस पर ठोकर खाई और वास्तव में आश्चर्यचकित क्यों, यह व्यवहार कब और कहाँ से आया। – user619271

3

डायोडियस के रूप में वर्णित है, तो आप फॉर्म को सबमिट करने के लिए ENTER कुंजी का उपयोग करना चाहते हैं, तो आपको अपने फॉर्म में <input type="submit"> टैग की आवश्यकता है।

कारण फ़ंक्शन onsubmit ईवेंट पर फ़ायरिंग नहीं कर रहा है क्योंकि onsubmit ईवेंट कभी नहीं निकाल दिया जाता है। हालांकि यह कुछ हद तक प्रतिद्वंद्वी है, एक फॉर्म पर submit() विधि का उपयोग करके (जैसा कि आप अपने reset_and_subm फ़ंक्शन में कर रहे हैं) onsubmit ईवेंट को आग लगने का कारण नहीं होगा।

  1. आपने अपने फ़ॉर्म में एक <input type="submit"> जोड़ सकते हैं और एक onsubmit कॉलबैक फ़ंक्शन में अपने सभी तर्क रख सकते हैं:

    आप एक जोड़े विकल्प हैं।

  2. फॉर्म पर सभी keypress ईवेंट देखें। यदि ENTER कुंजी दबाया जाता है या बटन क्लिक किया जाता है, तो उस फ़ंक्शन को कॉल करें जो फ़ॉर्म सबमिट करने से पहले आप जो सामान चाहते हैं वह करता है और फिर फॉर्म पर submit() पर कॉल करें।

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

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