始终从第一种形式获取价值。怎么了?

时间:2011-05-09 22:00:42

标签: javascript jquery ajax

我有一个网页,其中有几种形式。它看起来像this

单击“创建”时,ajax脚本会在第一个表单(“创建”按钮所属的位置)中检查字段中的非法值。没关系。

但是当单击“保存”按钮时,它仍会检查第一个表单中的字段,而不是“保存”按钮所属的表单。

我的Ajax看起来像这样

$(document).ready(function(){

    //    $('form').submit(function() {
    $('form').live('submit', function(){

    var title = $('#title').val();

        ...

这可能是问题所在吗?我已尝试使用注释代码,但这也不起作用。

问题出在哪里?

2 个答案:

答案 0 :(得分:2)

$('#title').val();表示“获取唯一输入的值 title ”。

如果您违反了规范并且具有多个具有相同ID的元素,那么浏览器通常会通过返回第一个此类元素从错误中恢复。

您应该将ID更改为:idOfForm_title(以便您的<label>元素仍可用)

然后使用:this.elements.title.value其中title名称属性的值(this会自动解析为提交事件触发的表单)。

答案 1 :(得分:1)

我认为您应该为表单添加class,例如class="create"表示第一个/创建表单,然后class="edit"表示第二个/编辑表单。

然后你可以修改你的jQuery看起来像

$(document).ready(function() {
    // only work with the 'create' form
    $('form.create').live('submit', function(e) {
        e.preventDefault(); // stop the form's default action

        // the rest of your code
    });

    // only work with the 'edit' form(s)
    $('form.edit').live('submit', function(e) {
        e.preventDefault(e); // stop the form's default action

        // the rest of your code
    });
});