为什么javascript表单处理根本没有标准?

时间:2012-02-11 11:50:56

标签: javascript

我的测试后,

第一种写作方式

<form name="form" >   
        <input type="text" id="tx1" value="123"><br>
    </form>
<script>
    alert(form.tx1.value);   

</script>

第二种写作方式

<form id="form" >   
        <input type="text" id="tx1" value="123"><br>
    </form>
<script>
    alert(form.tx1.value);   

</script>

第三种写作方式

<form id="form" >  
        <input type="text" id="tx1" value="123"><br>
    </form>
<script>
    alert(form.elements['tx1'].value);     

</script>

第四种写作方式

<form id="form" >  
        <input type="text" name="tx1" value="123"><br>
    </form>
<script>
    alert(form.elements['tx1'].value);     

</script>

........ 排列和组合很多,注意表单的id,名称和输入id,名称,结合js的写法,无论你怎么写,都没问题。 。 根本没有标准。 。 。

2 个答案:

答案 0 :(得分:1)

实际上,标准:http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-40002357

除了标准之外,大多数浏览器都实现了其他功能。

通过命名集合引用表单元素的最安全方法是:

<form name="formname">
    <input type="text" name="tx1" value="123">
</form>
<script>
alert(document.forms['formname'].elements['tx1'].value);     
</script>

document.formsHTMLCollection<form>元素。在每种形式中,elements属性是所有表单输入元素的集合。所有元素都必须由name 引用

答案 1 :(得分:0)

这个怎么样?

<form id="form" >   
    <input type="text" id="tx1" value="123"><br/>
</form>
<script>
    alert(tx1.value);   
</script>