我是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提交仍然无法正常工作,或者它是否根据状态执行删除...
答案 0 :(得分:0)
以下是在javascript中执行所需操作的方法,基本上您将自定义类添加到模板中的检查控件(我认为您使用的是我在代码中看到的复选框控件),然后捕获它,询问是否已选中,然后提交到您已经建立的网址:
$('.mycheck').click(function(){
if ($(this).is(':checked')){
var frm = document.getElementById("data");
frm.submit();
}
});
答案 1 :(得分:0)
如果您使用的是django,则需要在django端正确编码的视图(和url)。请注意by default csrf protection is on,您需要在django视图中添加csrf_exempt装饰器,或使用this method从页面中检索csrf标记
如果您使用表单,您的视图应该如下所示:
<audio src="http://localhost:5000/test.wav" controls autoplay>
<p>If your browser doesn't support the 'audio' element, it will display the content here between the opening and closing tags.</p>
</audio>
编辑:如果您正在运行开发服务器,您应该能够在启动它的终端中实时查看http调用的日志。这应该可以帮助您找到错误的位置。