Как избежать добавления дубликатов на ajax после второго вызова?

Вы, вероятно, захотите увидеть BuildAction в Resource, если вы этого еще не сделали.

Вот статья MSDN для справки: https://docs.microsoft.com/en- нас / предыдущая-версия / DotNet / NetFramework-3,5 / ms753303 (v = VS.90)

2
задан RedCactus 19 January 2019 в 18:09
поделиться

2 ответа

Проверьте наличие кнопки в строке 3

$(document).ready(function(){
    $('#openXML').on('click',function(event){
        if (!$('#+pk+').length) {
                // Your code
        }
    }
}
0
ответ дан kathy 19 January 2019 в 18:09
поделиться

Поскольку идентификаторы должны быть уникальными, я бы посоветовал проверить, существует ли кнопка до добавления. Следовательно, вам нужно изменить эту строку:

$("#loadAllTitles").append(myButton)

с помощью:

if ($("#loadAllTitles").find('#' + $.escapeSelector(pk + '/')).length == 0)
  $("#loadAllTitles").append(myButton)

Я получаю следующую консольную ошибку: Uncaught Error: синтаксическая ошибка, нераспознанное выражение: # / openGraph / 104 -

Если вы используете jQuery 3.x, вам нужно использовать:

jQuery.escapeSelector (): экранирует любой символ, имеющий особое значение в селекторе CSS.

ОБНОВЛЕНИЕ Хотя pk - это идентификатор, когда вы создаете новый элемент, вы добавляете к этому идентификатору окончательный вариант / . Это ваша проблема.

$('button').on('click', function(e) {
    var pk = '#/openGraph/104';
    var title='title';
    myButton="<input type=\"button\" class = \"openGraph\" value=\""+title+"\" id="+pk+"/\>";
    if ($("#loadAllTitles").find('#' + $.escapeSelector(pk + '/')).length == 0)
        $("#loadAllTitles").append(myButton)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form id="loadAllTitles">

</form>
<button type="button">Click to add the same input field</button>

0
ответ дан gaetanoM 19 January 2019 в 18:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: