我想问一下,当我在一页上有许多同名的表单时,我如何才能从 HTML 表单中仅在 Javascript 中提交时获取输入值。
它看起来像这样:
第一个打印的 HTML 表单:
<div id="addCommentContainer3">
<form class="add-comment-form" id="addCommentForm3" method="post" action="">
<input type="hidden" value="3" name="comentonpost" id="comentonpost"/>
<textarea class="commentinput" name="body" id="body" cols="20" rows="5"></textarea>
<input type="submit" id="submit" value="Submit" />
</form>
</div>
第二次打印:
<div id="addCommentContainer2">
<form class="add-comment-form" id="addCommentForm2" method="post" action="">
<input type="hidden" value="2" name="comentonpost" id="comentonpost"/>
<textarea class="commentinput" name="body" id="body" cols="20" rows="5"></textarea>
<input type="submit" id="submit" value="Submit" />
</form>
</div>
像这样的还有很多。
我必须取值,comentonpost
因为我需要在我的 Javascript 中使用它,所以当我发表评论时,它会出现在addCommentContainer
提交的表单之前。
还有整个 Javascript:
$(document).ready(function(){
var name_element = document.getElementById('comentonpost');
var x = name_element.value;
/* The following code is executed once the DOM is loaded */
/* This flag will prevent multiple comment submits: */
var working = false;
/* Listening for the submit event of the form: */
$('#addCommentForm'+x).submit(function(e){
e.preventDefault();
if(working) return false;
working = true;
$('#submit').val('Working..');
$('span.error').remove();
/* Sending the form fileds to submit.php: */
$.post('comment.submit.php',$(this).serialize(),function(msg){
working = false;
$('#submit').val('Submit');
/*
/ If the insert was successful, add the comment
/ below the last one on the page with a slideDown effect
/*/
$(msg.html).hide().insertBefore('#addCommentContainer'+x).slideDown();
},'json');
});
});
这样,当我按下提交按钮时,它仅适用于页面中打印的第一个表单。
我的问题是我该如何解决这个问题?我怎样才能让它comentonpost
只获得提交的表格而不是第一次打印的值,这个脚本有没有更好的工作方式?
提前致谢!