Jquery无法在opera中获取表单数据

时间:2011-02-24 15:20:21

标签: jquery

问题似乎与Jquery无关,但与html相关:

我在表格行之间渲染了表单。然后我尝试在表单中渲染表格行。 Opera和Firefox只接受您在表单标记之间呈现完整的表。

无效:

<form>
<tr>
<td></td>
</tr>
</form>

<tr><form>
<td></td>
</form></tr>

有效:

<form>
<table>
<tr>
<td></td>
</tr>
</table>
</form>

我无法理解为什么在Opera和IE中以下代码不起作用...

$("#form_" + $(this).attr('id')).serialize();

我只通过获取属性来检查它;工作
我检查了是否可以在没有序列化的情况下获取表单数据;工作

我该如何编码呢?尝试了很多组合和东西,但没有任何作用..为什么这不适用于歌剧?在chrome中我没有问题......

回答以下一些问题

我的页面上有多个表单,每个表单都有一个唯一的ID(from_1,form_5等)我检查了这个并且是正确的。当选择更改时,需要获取表单数据,因此更改事件会触发数据调用。

2 个答案:

答案 0 :(得分:0)

我在Opera 11.01中试过这段代码:

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function serializeFormData( formId )
        {
            var serializedData = $( '#form_' + formId  ).serialize();
            alert( serializedData );
        }
    </script>
<body>
    <form id="form_1" name="form_1">
        <input type="text" name="form_1_input" value="1" />
        <textarea name="form_1_textarea">1</textarea>
        <a href="javascript:;" onclick="serializeFormData( 1 )">Serialize</a>
    </form>

    <form id="form_2" name="form_2">
        <input type="text" name="form_2_input" value="2" />
        <textarea name="form_2_textarea">2</textarea>
        <a href="javascript:;" onclick="serializeFormData( 2 )">Serialize</a>
    </form>

    <form id="form_3" name="form_3">
        <input type="text" name="form_3_input" value="3" />
        <textarea name="form_3_textarea">3</textarea>
        <a href="javascript:;" onclick="serializeFormData( 3 )">Serialize</a>
    </form>
</body
</html>

一切都适合我!!!

答案 1 :(得分:0)

我发现了问题;

我在表格行之间渲染了表单。然后我尝试在表单中渲染表格行。 Opera和Firefox只接受您在表单标记之间呈现完整的表。

无效:

<form>
<tr>
<td></td>
</tr>
</form>

<tr><form>
<td></td>
</form></tr>

有效:

<form>
<table>
<tr>
<td></td>
</tr>
</table>
</form>