【发布时间】:2018-06-28 01:52:08
【问题描述】:
我是 Javascript 新手,想弄清楚如何在我的 HTML 表单中获取变量的值。我有以下代码工作,我发出警报以测试我的逻辑并且 else 语句正在工作,但如果值设置为 on,我似乎无法弄清楚如何让 Javascript 提交我的表单。我知道我的值被正确解释,因为我也用警报对其进行了测试。它似乎不想提交表单。我查看了 SO,似乎 Javascript 提交语法可能已经改变?这是我的 Javascript 函数:
document.getElementById('ifon').onclick = function(){
var getval = Checkbox(this.form);
if (getval == 'on') {
document.getElementById("data").submit();
} else {
alert(getval);
}
}
这是我的相关表单的 HTML:
<form id="data" name="form_name" action="{% url 'foo:bar' record.id %}">
<input type='hidden' name='status' value="Delete">
</form>
我是 Javascript 新手,所以也许我遗漏了一些东西。这是一个复选框,Javascript 似乎知道基于我的测试的值是什么。我似乎无法提交表单。提前感谢您的帮助。
只是为了简化问题和我对 Javascript 的理解,我已经玩了一些,并且可以确认我已经掌握了基础知识。这是我的表格...
<form id="data" name="form_name" action="{% url 'foo:bar' record.id %}" method="POST">
<input type='hidden' name='status' value="Delete">
</form>
<script>
function submitform()
{
document.form_name.submit();
}
</script>
此代码似乎不起作用。也没有错误消息。
基本的 Javascript 原则正在发挥作用,就像我将脚本更改为简单的...
<script>
function submitform()
{
alert("hi!");
}
</script>
我实际上看到了一个弹出窗口,上面写着你好!这一切都基于具有下面概述的 onclick 的按钮。这一切都很好。
<button type="button" onclick="submitform()" class="button9"><h3 class="txtalgn1">Link</h3></button></a>
在我的安装中,Javascript 的基础知识似乎有效。我更新了我的观点,包括以下内容:
class BookUpdateView(LoginRequiredMixin,NeverCacheMixin,UpdateView):
model = Book
template_name = 'book/book_update.html'
form_class = book_Update
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return super(BookUpdateView, self).dispatch(request, *args, **kwargs)
def form_valid(self, form):
self.kwargs['status'] = form.cleaned_data['status']
return super(BookUpdateView, self).form_valid(form)
但是 Javascript 提交似乎仍然无法正常工作,或者如果它没有根据状态执行删除...
【问题讨论】:
-
您告诉表单自己提交,但它应该提交到哪里?该表单没有设置目的地的操作参数。
-
丹尼尔·罗斯曼感谢您的指导。我在表单中添加了一个操作参数,但它似乎没有帮助。我正在使用 Django 表单,这会影响解决方案吗?
-
不,你所做的一切毫无意义。 action 属性是表单提交到的 URL。
-
既然你指出它没有动作参数,我认为这就是你的意思。
-
罗斯曼的意思是史蒂夫,是表单动作没有指定要提交的 URL。用 django 的话来说,它应该指向一个调用视图或其他东西的 URL。请给我们更多的范围,以便为您提供帮助。
标签: javascript jquery html django python-3.x