JQuery кнопку во всплывающем
Я использовал файл index.js, чтобы написать код для создания и открыть всплывающее окно при нажатии кнопки. Частичное представление вызывается как всплывающее окно.
$("#createForm").dialog({
autoOpen: false,
modal: true,
width: 550,
height: 420,
open: function(event, ui) {
$(".ui-dialog-titlebar-close").hide();
}
});
$(".buttonCreate").button().click(function() {
$.ajax({
// Call CreatePartialView action method
url: "/PurchaseInvoice/AddItemPartial",
type: 'Get',
success: function(data) {
$("#createForm").dialog("open");
$("#createForm").empty().append(data);
$("#editForm").hide();
},
error: function() {
alert("something seems wrong");
}
});
});
кнопка во всплывающем окне используется для вызова функции из другого файла.js. эта кнопка не работает в первый раз, когда открывается всплывающее окно, но когда всплывающее окно открывается после закрытия всплывающего окна с помощью кнопки esc, оно работает правильно.
$("#PopupAdd").click(function() {
// On submit button click close dialog box
$("#createForm").dialog("close");
// Set inserted vlaues
var Item = $("#ddlItem").val().toString();
var Quantity = $("#Quantity").val();
var Price = $("#Price").val();
var hdnID = $("#hdnInvoiceID").val();
// Call Create action method
$.post('/PurchaseInvoice/Create', {
"ddlItem": Item,
"Quantity": Quantity,
"Price": Price,
"hdnInvoiceID": hdnID
},
function() {
alert("Data Saved successfully");
window.location.reload(true);
});
});
Частичное представление используется в качестве всплывающего окна при нажатии кнопки. Частичное представление вызывается из контроллера и отображается во всплывающем окне.
2 ответа
Добавить событие на document.ready
функция той страницы, кнопка которой не работает в первый раз, как ->
Это функция для принятия числовых значений только в текстовых полях при нажатии клавиши. Вы можете добавить любую функцию для инициализации событий страницы, тогда кнопка может работать правильно с первого раза.
$(document).ready(function () {
$("#Quantity").keypress(function (e) {
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
$("#errmsg").html("Digits Only").show().fadeOut("slow");
return false;
}
});
});
Чтобы селектор работал с элементом, динамически добавляемым на страницу, я всегда привязываю его к документу вот так
$(document).on('click', '#PopupAdd', function(){...