Javascript Can';无法访问IE中的表单元素,因为它';未定义;。在FF和Chrome中工作正常

Javascript Can';无法访问IE中的表单元素,因为它';未定义;。在FF和Chrome中工作正常,javascript,html,forms,cross-browser,Javascript,Html,Forms,Cross Browser,这很奇怪,因为我在IE中只有一个错误:“时间未定义”。sTime是表单中许多输入元素之一的ID。在镀铬和FF中,一切都很好。以下是代码的链接: 以及html格式: <form id="addNewTruck" class='updateschedule' action="javascript:sub(sTime.value, eTime.value, lat.value, lng.value, street.value);"> <b style="color:gr

这很奇怪,因为我在IE中只有一个错误:“时间未定义”。sTime是表单中许多输入元素之一的ID。在镀铬和FF中,一切都很好。以下是代码的链接:

以及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' /> 

开幕时间:
截止时间:
地址:

谢谢你的帮助

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

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

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

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


      表单操作中的Javascript应该运行良好。 也许您应该使用以下内容,而不是
      sTime.value

      document.forms[0].sTime.value
      

      当然,这意味着此表单是页面中的第一个表单(否则您必须将
      …表单[0]…
      更改为
      …表单['formname']…
      …表单[]…

      表单操作中的Javascript应该可以正常工作。 也许您应该使用以下内容,而不是
      sTime.value

      document.forms[0].sTime.value
      

      当然,这意味着此表单是页面中的第一个表单(否则您必须将
      …表单[0]…
      更改为
      …表单['formname']…
      …表单[]…

      使用onsubmit而不是action似乎允许IE访问输入元素。现在ie不喜欢我用来格式化日期字符串的正则表达式。。。知道是什么原因吗?@culov不知道,对不起。也许值得一提。使用onsubmit而不是action似乎允许IE访问输入元素。现在ie不喜欢我用来格式化日期字符串的正则表达式。。。知道是什么原因吗?@culov不知道,对不起。也许值得一个单独的问题。