Onchange不起作用

时间:2014-03-27 06:13:47

标签: javascript php jquery date onchange

嗨,大家好我知道如果以编程方式填写文本框,onchange并不会解雇我怎样才能做到这一点。

我有两个只读的文本框,当你点击日期选择器出现时。

我已经作为我的文本框开始和结束。

我希望在startdate值发生变化时将startdate值复制到enddate值。

谢谢大家的帮助,我也是javascript和JQuery的新手

我的代码

我使用此代码只是为了看看当我更改值

时我是否可以打开弹出窗口
<script>
function fireEvent(element,event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}
</script>

<td width="228" align="left" valign="top" bgcolor="#D8ABAD">From:

    <label for="input1"></label>
    <input type="text" name="startdate" id="startdate" required="required" value="04/12/2014"/>
    <script>
        obj = document.getElementById("startdate");
        Event.observe(obj,'change',function(){alert('hi');});
        fireEvent(obj,'change');
    </script>
</td>
<td width="23" align="center" valign="top" bgcolor="#D8ABAD">To:</td>
<td width="267" align="left" valign="top" bgcolor="#D8ABAD">
    <label for="enddate"></label>
    <input type="text" name="enddate" id="enddate" required="required" value="04/12/2014"/>
</td>

2 个答案:

答案 0 :(得分:1)

尝试使用addEventListener()而不是Event.observe(),并且您的fireEvent函数未定义为函数,因为您没有在函数前放置function字。

javascript应该是这样的

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

obj = document.getElementById("startdate");
obj.addEventListener('change',function(){alert('hi');}, false);
fireEvent(obj,'change');

小提琴:http://jsfiddle.net/XB3RK/

答案 1 :(得分:-1)

只有在用户更改输入值时才会触发onchange事件。如果以编程方式更改输入,则不应触发。

从任何函数调用函数来设置值。