使用Javascript:
function submitComment(e){
e.preventDefault();
var comment = $('#????').val(); // how do I get the ID?
// ajax
}
评论表:
<form id="comment-form[id]" onsubmit="submitComment(event)">
<input id="comment-input[id]" type="text" placeholder="Comment...">
</form>
[id]
是特定表单的变量ID。它有ID的原因是因为我有一个for循环,显示了一个完整的帖子列表,每个帖子都有自己的评论表单(想想Facebook)。
我想知道的是,当他们根据提交的表单的ID提交评论输入框时,我如何获得评论输入框的值(文本)。
答案 0 :(得分:1)
使用您的设置(HTML / javascript),您可以使用纯粹的javascript(如
)执行此操作function submitComment(e) {
var id = e.target.id;
id = id.match(/\[(.*?)\]/)[1];
console.log(id);
var comment = document.getElementById('comment-input['+id+']').value;
console.log(comment);
}
function submitComment(e){
var id = e.target.id;
id = id.match(/\[(.*?)\]/)[1];
console.log(id);
var comment = document.getElementById('comment-input['+id+']').value;
console.log(comment);
}
<form id="comment-form[0]" onsubmit="submitComment(event)">
<input id="comment-input[0]" type="text" placeholder="Comment...">
<input type="submit" placeholder="submit">
</form>
答案 1 :(得分:1)
您可以使用event.target
。
var comment = $('input[id^="comment-input"]',e.target).val()
这将为您提供输入值。
e.target
将为您提供当前表单。[^=""]
- 属性以选择器开头来查找输入元素。如何根据提交的表单ID获取评论输入框的值(文本)
var formID = e.target.id; //get form ID
var comment = $('#'+formID+' input[id^="comment-input"]').val()
//use $('#parent child') selector.
答案 2 :(得分:0)
function submitComment(e){
e.preventDefault();
// e.currentTarget gives you the form element and then you can extract its id
var formElementId = $(e.currentTarget).attr("id");
// Then replace the form text with input which will be your comment input id
var commentElementId = formElementId.replace("form", "input");
var comment = $(commentElementId).val(); // how do I get the ID?
// ajax
}
答案 3 :(得分:0)
function submitComment(e){
e.preventDefault();
var comment = $('input[id^="comment-input"]').val();
// ajax
}
使用jquery start-with选择器可能会有所帮助。