<html:text property="segOrgn" style="width:40px" value="" maxlength="3"  onpropertychange="afterValueChange(this)" />
      显示出错:Attribute onpropertychange invalid for tag text according to TLD。显然是struts1.2标签<html:text>不能用onpropertychange事件。
       在html的<input>可以用onpropertychange,但是类似于html<input>的<html:text>应当怎样调用类似于onpropertychange的事件???

解决方案 »

  1.   

    你将onpropertychange换成onchange试试,注意onchange是小写。
      

  2.   

    js改变文本框值时,onchange监控不到,不符合我要做的。
      

  3.   


    其实我能找到用onpropertychange的方法,但是还是没能成功解决:
    function afterAirportChange(objAirport){
    objAirport.attachEvent('onpropertychange',function(o){
    if(o.propertyName!='value')return;////不是value改变不执行下面的操作
    var RangeTr = objAirport.parentElement.parentElement;
    clearFlightDate_new(objAirport);
    clearNextFlightDate_new(RangeTr.all.segmentId.value); });
    }在html:text内容加上
    onblur="afterAirportChange(this)"
    这样在值没有改变的情况下,照样把其他的文本框内容删除。不知为什么
      

  4.   

    你这个是你自己实现的方法吧。那 这两行是做什么的:
    clearFlightDate_new(objAirport);
    clearNextFlightDate_new(RangeTr.all.segmentId.value);

    你说的值没改变,然后还照样把其他文本框内容删除。你的方法不是在失去 <html:text property="segOrgn" ..../>的焦点后触发吗?你alert下。看看进入到哪一步删除的文本框。
      

  5.   

    谢谢你们了,我已经解决了。
    用nfocus和onblur,可以处理。
     <input onfocus="beforValueChange(this)" onblur="afterValueChange(this)" />
    1首先定义一个全局变量,
    2在onfocus得到焦点时赋值
    3再在onblur失去焦点时判断新值和旧值是否相同这样就能解决了struts1.2标签<html:text>不能用onpropertychange事件的问题。