Прежде всего, проверьте, звоните ли вы в FORM, нажав на изображение , потому что я тестирую страницу HTML вместо asp в качестве вашей и нажимаю на отправку формы, у меня было удалить тег .
Код дублирует текстовое поле, потому что вы используете append , это добавит N текстовое поле, перед добавлением дополнительного текстового поля вы должны очистить существующие элементы управления.
Я изменяю ваш код jQuery из этого:
$(document).ready(function () {
$("#<%= imagehs.ClientID %>").on("click", function (event) {
var values = new Array();
//var x = event.pageX - this.offsetLeft;
//var y = event.pageY - this.offsetTop;
var x = event.pageX;
var y = event.pageY;
//$(".marker").remove();
$("body").append(
$('<div class="marker"></div>').css({
position: 'absolute',
//top: y + 'px',
//left: x + 'px',
top: event.pageY + 'px',
left: event.pageX + 'px',
width: '10px',
height: '10px',
background: '#FFFFFF'
})
);
$("#textboxX").append('<div><input type="text" value="' + x + '" id="txtX" name="txtX"/></div>');
$("#textboxY").append('<div><input type="text" value="' + y + '" id="txtY" name="txtY"/></div>');
$("#textboxBPart").append("<div><input type='text' id='txtName' name='txtName'/></div>");
//$('input #txtName').each(function () {
// if (this.value != '')
// values.push(this.value);
// alert(this.value);
//});
//alert($('#txtName).val());
var $r = $('<button />', { type: 'button', text: 'Refresh Data', id: 'btn_refresh' });
$("#divSaveDynamicDis").append($r);
$r.on('click', function () {
//$("#txtName").each(function () {alert($(this).val());});
var NewData = '<div class="col-sm-12">' + x + y + txtName.value + '</div>';
$("#divdynamicData").append(NewData);
$("#textboxX").remove();
$("#textboxY").remove();
$("#textboxBPart").remove();
$("#divSaveDynamicDis").remove();
});
});
});
На это (обратите внимание, что я изменяю идентификатор элемента управления, потому что я не использую ASP).
$(document).ready(function() {
$("#imagehss").on("click", function() {
$("#divdynamicData").html("");
$("#textboxX").html("");
$("#textboxY").html("");
$("#textboxBPart").html("");
$("#divSaveDynamicDis").html("");
var values = new Array();
//var x = event.pageX - this.offsetLeft;
//var y = event.pageY - this.offsetTop;
var x = event.pageX;
var y = event.pageY;
//$(".marker").remove();
$("body").append(
$('<div class="marker"></div>').css({
position: "absolute",
//top: y + 'px',
//left: x + 'px',
top: event.pageY + "px",
left: event.pageX + "px",
width: "10px",
height: "10px",
background: "#FFFFFF"
})
);
$("#textboxX").append(
'<div><input type="text" value="' + x + '" id="txtX" name="txtX"/></div>'
);
$("#textboxY").append(
'<div><input type="text" value="' + y + '" id="txtY" name="txtY"/></div>'
);
$("#textboxBPart").append(
"<div><input type='text' id='txtName' name='txtName'/></div>"
);
//$('input #txtName').each(function () {
// if (this.value != '')
// values.push(this.value);
// alert(this.value);
//});
//alert($('#txtName).val());
var $r = $("<button />", {
type: "button",
text: "Refresh Data",
id: "btn_refresh"
});
$("#divSaveDynamicDis").append($r);
$r.on("click", function() {
//$("#txtName").each(function () {alert($(this).val());});
var NewData =
'<div class="col-sm-12">' + x + y + txtName.value + "</div>";
$("#divdynamicData").append(NewData);
$("#textboxX").html("");
$("#textboxY").html("");
$("#textboxBPart").html("");
$("#divSaveDynamicDis").html("");
});
});
});
Обратите внимание, что я изменяю Remove () на html (""), потому что удаление, как и слово, сказал удалить все элементы управления, html ("") просто очистить содержимое html, не удаляя контроль.
Вы можете проверить это работает здесь на Codepen