पहली बार ठीक है जब मैं "नया जोड़ें" चुनता हूं और एक नया विकल्प जोड़ता हूं। दूसरी बार (वर्ग द्वारा प्रतिष्ठित एक अलग तत्व के लिए) यह चयनित तत्व और पहला वाला नया विकल्प जोड़ता है। दोनों तत्व addnew करने के लिए बाध्य हैं।jQuery AJAX पोस्ट दो बार क्यों करता है?
<script type="text/javascript">
$('#upload_form option[value="addnew"]').click(function(){
// Show modal window
$('#add-new').modal('show');
// Get the class
var Classofentry = $(this).attr("class");
$('#add-new-submit').on('click', function(){
// Get new option from text field
var value = $('#add-new-text').val();
console.log(value);
$.ajax({
type: "POST",
url: "<?php echo site_url(); ?>main/change_options",
data: {new_option: value, new_option_class: Classofentry},
dataType: "html",
error: errorHandler,
success: success
});
function success(data)
{
$('#'+Classofentry).append("<option value='" + data + "'selected=\"selected\">" + data + "</option>");
//alert(data);
//alert('Success!');
}
function errorHandler()
{
alert('Error with AJAX!');
}
$('#add-new').modal('toggle');
});
});
</script>
अजीब बात यह है कि यह अजाक्स के माध्यम से दो बार पोस्ट लूप लगता है। मुझे लगता है कि यह सभी "addnew" मानों को ढूंढ रहा है (अब तक 2 हैं, और भी होगा)। मैं इसे निर्दिष्ट कक्षा के साथ तत्व का इलाज करने के लिए कैसे प्राप्त करूं? उम्मीद है कि यह समझ में आता है।
हर बार जब आप #upload_form विकल्प पर क्लिक करें [value = "Addnew"], आप एक नया क्लिक हैंडलर # करने के लिए जोड़ एड-नए सबमिट करें। पहले 5 बार क्लिक करें, अब दूसरी बार एक क्लिक 5 बार ट्रिगर होगा! – Robert
@Robert: मैं मोडल को बर्खास्त करने पर कैसे पूर्ववत करूं? अर्थात। यदि #upload_form विकल्प [value = "addnew"] क्लिक किया गया है और फिर मोडल को बंद करके खारिज कर दिया गया है? – MysticalTautologist