jQuery может изменить текст ввода типа отправки, но кнопка больше не нажимается - PullRequest
0 голосов
/ 10 июля 2020

Я использую jaquery и jquery мобильную версию 1.8, и у меня есть такая кнопка:

   <div class="ui-bar-a" id="myButton" style="bottom:0;position: fixed;width: 100%">
        <input type="submit" name="Next" id="NextButton" value="Save"  /> 
   </div>

И у меня есть javascript, который может изменять текст для него следующим образом:

     $('#AnyButton').live('click', function() {             
        if(true)
        {
            $('#myButton div').text('Saving')
        }
        else
            $('#myButton div').text('Continue');
    });

Я пробовал так много других способов, которые не работали, но это работает, однако после того, как я изменил текст, кажется, что кнопка заменяет содержимое div myButton на текст Saving или Continue, и, таким образом, кнопка больше не доступна .

В отладчике моего браузера на кнопке отображается текст «Сохранить» между myButton и вводом Nextbutton.

Примерно так:

<div class="ui-bar-a" id="myButton" style="bottom:0;position: fixed;width: 100%">
"Save"
      <input type="submit" name="Next" id="NextButton" value="Save"  /> 
</div>

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Я подозреваю, что ваш код - это нечто большее, чем вы представили. В jQuery Mobile каждый input читается как кнопка. Таким образом, вам может потребоваться обновить sh его после обновления c Dynami.

Этот код работает:

$(function() {
  $("#NextButton").click(function(e) {
    e.preventDefault();
    $(this).val("Saving").button("refresh");
  });
});
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<div class="ui-bar-a" id="myButton" style="bottom:0;position: fixed;width: 100%">
  <input type="submit" name="Next" id="NextButton" value="Save" />
</div>

Подробнее: https://api.jquerymobile.com/button/ и https://demos.jquerymobile.com/1.4.5/button/

1 голос
/ 10 июля 2020

Если я правильно читаю ваш пост, вы хотите изменить текст ввода, вам нужно изменить его свойство value. Я думаю, что .live относительно стар и не рекомендуется, и его следует заменить на .on и делегированный обработчик событий

$('#AnyButton').live('click', function() {             
    if(true)
        $('#myButton').find('input[type="submit"]').val('Saving');
    else
        $('#myButton').find('input[type="submit"]').val('Continue');
});
...