2009-06-08 8 views
7

मैं यह पता लगाने की क्यों इस जावास्क्रिप्ट दर्ज किए जाने से प्रपत्र नहीं रुकती कोशिश कर रहा हूँ झूठे रिटर्न:फार्म अभी भी श्रोता समारोह हालांकि प्रस्तुत की है

<form action="http://www.example.com" id="form"> 
    <input type="text" /> 
    <input type="submit" /> 
</form> 

<script> 
var code = function() { 
    return false; 
}; 
var element = window.document.getElementById("form"); 
if (element.addEventListener) { 
    element.addEventListener("submit", code, false); 
} 
</script> 

जब तक मैं प्रपत्र के लिए निम्न ऑनसबमिट विशेषता जोड़ें तत्व:

<form action="http://www.example.com" id="form" onsubmit="return false"> 
    <input type="text" /> 
    <input type="submit" /> 
</form> 

<script> 
var code = function() { 
    return false; 
}; 
var element = window.document.getElementById("form"); 
if (element.addEventListener) { 
    element.addEventListener("submit", code, false); 
} 
</script> 

addEventListener विधि की तरह लगता है अकेले चाल करना चाहिए। कोई विचार? मैं मैक पर हूं और मुझे सफारी, फ़ायरफ़ॉक्स और ओपेरा पर एक ही परिणाम का अनुभव हो रहा है। धन्यवाद।

+0

के संभावित डुप्लिकेट [लौट addEventListener पर झूठी प्रस्तुत अभी भी प्रस्तुत फार्म?] (http://stackoverflow.com/questions/4924036/return-false-on-addeventlistener-submit-still-submits-the-form) – unor

उत्तर

8

दो एक समाधान है कि दोनों मैक और पीसी काम करता है में बहुत मददगार जवाब से जानकारी संयुक्त:

<script> 
var code = function (eventObject) { 
    if (eventObject.preventDefault) { 
     eventObject.preventDefault(); 
    } else if (window.event) /* for ie */ { 
     window.event.returnValue = false; 
    } 
    return true; 
}; 
var element = window.document.getElementById("form"); 
if (element.addEventListener) { 
    element.addEventListener("submit", code, false); 
} else if (element.attachEvent) { 
    element.attachEvent("onsubmit", code); 
} 
</script> 
6

ऐसा लगता है कि अगर आप

var code = function(e) { 
    e.preventDefault(); 
} 

करने के लिए अपने समारोह को बदलने यह आप जो खोज रहे हैं क्या करना चाहिए।

source

2

मुझे लगता है कि आप देख रहे हैं ब्राउज़रों कि इसे लागू करने के लिए Event इंटरफ़ेस का preventDefault() तरीका है। यह आपके द्वारा "return false" की अपेक्षा के अनुसार फॉर्म सबमिशन को रद्द कर देगा।

अधिक here और here

<script type="text/javascript"> 
var code = function (evt) { 
      if (evt.preventDefault) { 
       evt.preventDefault(); 
      } 
      return false; 
}; 
window.onload = function() { 
    var element = window.document.getElementById("form"); 
    if (element.addEventListener) { 
     element.addEventListener("submit", code, false); 
    } 
}; 
</script> 
संबंधित मुद्दे