无法访问IE中的表单元素,因为它“未定义”。适用于FF和Chrome

时间:2010-07-19 09:51:55

标签: javascript html forms cross-browser

这很奇怪,因为我在IE中只收到1个错误:'sTime未定义'。 sTime是表单中众多输入元素之一的ID。在Chrome和FF中一切正常。这是代码的链接:

http://la.truxmap.com/sched.html

和表格html:

<form id="addNewTruck" class='updateschedule' action="javascript:sub(sTime.value, eTime.value, lat.value, lng.value, street.value);"> 

    <b style="color:green;">Opening at: </b> 
        <input id="sTime" name="sTime" title="Opening time" value="Click to set opening time" class="datetimepicker"/> 

    <b style="color:red;">Closing at: </b> 
        <input id="eTime" name= "eTime" title="Closing time" value="Click to set closing time" class="datetimepicker"/> 

    <b style="color:blue;">Address: </b> 
        <input type='text' name='street' id='street' class='text street' autocomplete='off'/> 
        <input id='submit' class='submit' style="cursor: pointer; cursor: hand;" type="submit" value='Add new stop'/> 
    <div id='suggests' class='auto_complete' style='display:none'></div> 
        <input type='hidden' name='lat' id='lat'/> 
        <input type='hidden' name='lng' id='lng'/> 
        <input type='hidden' value='CA' name='state' id='state' class='text state' /> 

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

  • 尝试将JavaScript放入onsubmit事件而不是action

  • 在JS中不那么模糊地处理表单元素,例如使用this.elements.sTime。可能是元素名称在文档的其他地方使用。

答案 1 :(得分:0)

表单中的Javascript操作应该运行良好。 也许您应该使用以下代替sTime.value

document.forms[0].sTime.value

当然,这意味着此表单是您网页中的第一个(否则您必须将...forms[0]...更改为...forms['formname']......forms[<form index>]...