我是jquery的新手并尝试执行以下操作:
我有一张表格:
<form method="POST" class="add-product" >
...
<label name="message"></label>
...
</form>
脚本:
$(document).ready(function() {
$(".add-product").submit(function(e) {
e.preventDefault();
var form = this;
$.ajax({
type: "POST",
url: "/product/add/",
data: $(this).serialize(),
success: function(data) {
$(form.elements["message"]).html(data.message);
}
});
});
});
我试图用邮件更新标签,但它不起作用。似乎我在语法上有一些错误:
$(form.elements["message"]).html(data.message);
答案 0 :(得分:2)
问题是因为label
集合中未显示form.elements
。相反,您需要直接选择它:
$(".add-product").submit(function(e) {
e.preventDefault();
var form = this;
// inside the AJAX callback...
var data = {
message: 'Foo bar'
}
$(form).find('label[name="message"]').html(data.message);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="POST" class="add-product">
<label name="message"></label>
<button>Submit</button>
</form>
&#13;
答案 1 :(得分:0)
尝试使用选择器:
$("form.add-product label[name='message']").html(data.message)
您可以在此处阅读有关jQuery Attribute selector的更多信息。 https://api.jquery.com/attribute-equals-selector/
如果页面上有多个带有属性name='message'
的标签,则上述内容无法使用。
答案 2 :(得分:0)
您使用了错误的jquery选择器,请尝试:
$('label[name="message"]').html(data.message);
希望这有帮助;