当文本框以编程方式更改时,javascript触发事件

时间:2011-07-12 11:23:43

标签: javascript events textbox client onchange

我有一个应用程序,其中服务器将数据发送到我需要编程的客户端。每个数据字符串都发送到一个唯一的文本框。我希望在显示之前捕获这些数据并将其格式化,具体取决于独立可选列表的状态。我无法使用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 :(得分:0)

试试这个:

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');

答案 1 :(得分:0)

只有两种方法可以从服务器更改文本框:

  1. 浏览器加载整个页面时

  2. 当浏览器向服务器发送AJAX请求并替换输入元素中的文本时

  3. Web服务器无法“将数据发送到文本框”。你可能意味着别的东西,但是你错过了表达它的正确的词语。

    我从来源看到的是data-refdata-path。这表明AJAX用于从服务器获取新值并将其放入DOM中。

    要更改此设置,请查看该页面的完整源代码(包括所有JavaScript代码)并查找pathdata-pathdata('path')data("path")

    如果您找到了提出请求的地方,您就会知道在哪里添加自己的回调。

答案 2 :(得分:-1)

 function Evaluate() {
        var q1 = document.getElementById("<%=txtqty.ClientID %>").value
}

<asp:TextBox ID="txtqty" runat="server" CssClass="txtclass"  Width="40px" ValidationGroup="AddLoan" onchange="return Evaluate();" >