我有一个网页,其中有几种形式。它看起来像。
单击“创建”时,ajax脚本会在第一个表单(“创建”按钮所属的位置)中检查字段中的非法值。没关系。
但是当单击“保存”按钮时,它仍会检查第一个表单中的字段,而不是“保存”按钮所属的表单。
我的Ajax看起来像这样
$(document).ready(function(){
// $('form').submit(function() {
$('form').live('submit', function(){
var title = $('#title').val();
...
这可能是问题所在吗?我已尝试使用注释代码,但这也不起作用。
问题出在哪里?
答案 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
});
});