我仍然遇到一些jQuery问题。如果我有这样的HTML:
<form method="post">
<textarea id="id_content" rows="10" cols="40" name="content"></textarea>
<input id="yes" type="submit" value="submit">
</form>
<form method="post">
<textarea id="id_content" rows="10" cols="40" name="content"></textarea>
<input id="no" type="submit" value="submit">
</form>
<form method="post">
<textarea id="id_content" rows="10" cols="40" name="content"></textarea>
<input id="question" type="submit" value="submit">
</form>
为什么我不能用这个jQuery代码成功发布请求?
$(function(){
$('input').live('click', function(){
if ($(this).attr('id') == 'yes'){
var url = 'www.example.com/add_yes/'
} if ($(this).attr('id') == 'no'){
var url = 'www.example.com/add_no/'
} else {
var url = 'www.example.com/add_question/'}
var form = $('.' + $(this).attr('id'))
var textarea = form.$('texarea[name="content"]').text().serialize()
$.ajax({
type: 'POST',
url: url,
data: textarea,
success: succes,
dataType: 'json'
})})})
以下是jsfiddle http://jsfiddle.net/
中的代码答案 0 :(得分:1)
替换:
var textarea = form.$('texarea[name="content"]').text().serialize()
with:
var textarea = form.find('texarea[name="content"]').text()
答案 1 :(得分:1)
您的html /代码存在许多问题。
1)此行var form = $('.' + $(this).attr('id'))
正在页面上查找一个元素,其类名与所单击的输入按钮的id相匹配。由于您没有包含.no
,.yes
或.question
类的元素,因此无法找到任何内容
2)下一行var textarea = form.$('texarea[name="content"]')...
错误地尝试以不正确的方式使用此元素。我怀疑你真正打算做的是$('texarea[name="content"]',form)...
或form.find('texarea[name="content"]')
两者都会在上面发现的形式中找到一个textarea。
3)textarea在您的选择器中输错了texarea
答案 2 :(得分:1)
为我使用class ='content'
的所有文字区域添加一个唯一的课程 <form method="post">
<textarea id="id_content" rows="10" cols="40" class="content" name="content"></textarea>
<input id="no" type="submit" value="submit">
</form>
<form method="post">
<textarea id="id_content" rows="10" cols="40" class="content" name="content"></textarea>
<input id="question" type="submit" value="submit">
</form>
然后使用这个jquery代码,这将解决你的问题
$(function(){
$('input').live('click', function(){
if ($(this).attr('id') == 'yes'){
var url = 'www.example.com/add_yes/'
} if ($(this).attr('id') == 'no'){
var url = 'www.example.com/add_no/'
} else {
var url = 'www.example.com/add_question/'}
var textarea = $(this).parent().find(".content").val();
$.ajax({
type: 'POST',
url: url,
data: textarea,
success: succes,
dataType: 'json'
});
});
});