событие запуска JavaScript, когда текстовое поле изменяется программно - PullRequest
2 голосов
/ 12 июля 2011

У меня есть приложение, в котором сервер отправляет данные клиенту, который мне нужно запрограммировать. Каждая строка данных отправляется в уникальное текстовое поле. Я хочу поймать эти данные и отформатировать их перед отображением в зависимости от состояния независимого списка выбора. Я не могу запустить событие, используя onchange, так как оно работает только для ввода пользователя. Есть ли простой способ сделать это? Я не мог найти одно прямое решение для этого.

<input class="dios" id="diosinput" type="text" value="" data-ref="#source" data-path="/abc/0/input" />


<select class="widthed"> 
<option>Hex</option> 
<option>Binary</option> 
</select>
//my function 

function decToHex(d)
{
var displayHex = d.toString(16);

if(displayHex.length<2) displayHex = '0'+ displayHex;

return '0x'+ displayHex.toUpperCase();
}

Ответы [ 3 ]

0 голосов
/ 12 июля 2011

Существует только два способа изменить текстовое поле с сервера:

  1. Когда браузер загружает всю страницу

  2. Когда браузер отправляет запрос AJAX на сервер и заменяет текст в элементе ввода

Веб-сервер не может "отправить данные в текстовое поле". Вы, вероятно, имеете в виду что-то еще, но вам не хватает слов, чтобы выразить это.

Что я могу видеть из источника - это data-ref и data-path. Это говорит о том, что AJAX используется для получения нового значения с сервера и помещения его в DOM.

Чтобы изменить это, посмотрите на весь исходный код страницы (включая весь код JavaScript) и найдите path или data-path или data('path') или data("path")

Если вы найдете место, где сделан запрос, вы будете знать, куда добавить свой обратный вызов.

0 голосов
/ 02 декабря 2014
 function Evaluate() {
        var q1 = document.getElementById("<%=txtqty.ClientID %>").value
}

<asp:TextBox ID="txtqty" runat="server" CssClass="txtclass"  Width="40px" ValidationGroup="AddLoan" onchange="return Evaluate();" >
0 голосов
/ 12 июля 2011

Попробуйте это:

function fireEvent(element,event) {
  if (document.createEventObject) {
    // dispatch for IE
    var evt = document.createEventObject();
    return element.fireEvent('on'+event,evt)
  } else {
    // dispatch for others
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent(event, true, true ); // event type,bubbling,cancelable
    return !element.dispatchEvent(evt);
  }
}

fireEvent(document.getElementById('InsertIdOfYourInput'), 'change');
...