2015-04-03 2 views
1

вида изнутри У меняизменение значения текста в асинхронном действии с помощью JQuery

<a onclick="myAction(@item.Id)" id="myActionId">@actionText</a> 

или

<a id="myActionId" onclick="myAction(21)">Activate</a> 

фикция, который посылает идентификатор контроллера для MVC дальнейшей обработки. В ответ от контроллера я получаю строковые данные, которые следует использовать для изменения текста кнопки без перезагрузки страницы.

<script type="text/javascript">    
    function myAction(someId){ 
     $.ajax({ 
      method: "POST", 
      url: "/mydata/someaction/", 
      data: { id: someId} 
     }).done(function(msg) { 
      $("#myActionId").text(msg);    
     }); 
    }  
</script> 

Я получаю правильный текст внутри сделано (функция (msg)), но текст кнопки не обновляется с этим значением. Что я здесь делаю неправильно?

+0

Для фронтальных вопросов, которые я рекомендую показывать обработанную HTML, а не вид бритвы. На всякий случай что-то происходит во время рендеринга, который изменил ваш идентификатор, например. – Curt

+2

У вас возникли ошибки в консоли браузера? Вы пытались запустить код в консоли? Например: '$ (" # myActionId "). Text (" test ");' – Curt

+0

yes, inside console.log Я получаю ожидаемое (правильное) значение. Просто значение не обновляется внутри ui. – user1765862

ответ

0

пользователя $('#mybutton').val("My NEW Text");
есть посмотреть на демо demo

0

Аякс метода по умолчанию является Asynchronous:true .в коды, myAction(someId) функцию return as true default .so перед получить результат от АЯКСА method.your MyAction() Funciton находится в неактивном состоянии. из-за этого вы не можете установить текст в свой якорный тег.

<script type="text/javascript">    
function myAction(someId){ 
    $.ajax({ 
     method: "POST", 
     url: "/mydata/someaction/", 
     async: false, 
     data: { id: someId} 
    }).done(function(msg) { 
     $("#myActionId").text(msg);    
    }); 
}  

Смежные вопросы