Następujące działa poprawnie po pierwszym wybraniu opcji "Dodaj nowy" i dodaniu nowej opcji. Drugi raz (dla innego elementu rozróżnianego przez klasę) dodaje nową opcję do wybranego elementu i pierwszego. Oba elementy są zobowiązane do dodania.Dlaczego jQuery ajax publikuje dwa razy tutaj?
<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>
Dziwne jest to, że wydaje się, że dwa razy przeplata się przez ajax. Przypuszczam, że znajduje on wszystkie wartości "addnew" (do tej pory są ich 2, będzie ich więcej). Jak uzyskać to, aby po prostu traktować element z wyznaczoną klasą? Mam nadzieję, że to ma sens.
każdym kliknięciu na opcję #upload_form [value = „AddNew”], należy dodać nową kliknij obsługi do # add-new-submit. Kliknij 5 razy na pierwszym, teraz kliknięcie drugiego wywoła 5 razy! – Robert
@Robert: Jak mogę to cofnąć po zwolnieniu modalu? To znaczy. jeśli kliknięto opcję #upload_form [value = "addnew"], a następnie modal został odrzucony, klikając go? – MysticalTautologist