gpt4 book ai didi

javascript - 使用 Django 和 Javascript 验证表单字段时出现 ValueError

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:32 25 4
gpt4 key购买 nike

我在使用 Javascript 和 Django 验证字段时收到以下错误。

Error:

ValueError at /insert/
invalid literal for int() with base 10: ''
Request Method: POST
Request URL: http://127.0.0.1:8000/insert/
Django Version: 1.11.2
Exception Type: ValueError
Exception Value:
invalid literal for int() with base 10: ''
Exception Location: /usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py in get_prep_value, line 1853
Python Executable: /usr/bin/python
Python Version: 2.7.6

我在下面解释我的代码。

insert.html:

<script type="text/javascript">
function validateForm(){
var s=document.frmfeed;
if(s.name==''){
alert('Please enter the name');
return;
}else if(s.phone==''){
alert('Please enter the phone no');
return;
}else if(s.age==''){
alert('Please enter the age');
return;
}else{

}
}
</script>

<form method="post" action=" " onSubmit="return validateForm();" name="frmfeed">
{% csrf_token %}
<label>Name: </label>
<input name="name" value="{{person.name}}">
<br>
<label>Phone: </label>
<input name="phone" value="{{person.phone}}">
<br>
<label>Age: </label>
<input name="age" value="{{person.age}}">
<br>
<input type="hidden" name="id" value="{{person.id}}">
<input type="submit" value="Submit">
</form>

view.py:

def insert(request): 
# If this is a post request we insert the person
if request.method == 'POST':
p = Person(
name=request.POST['name'],
phone=request.POST['phone'],
age=request.POST['age']
)
p.save()
return redirect('/')
else:
return render(request, 'insert.html', {})

model.py:

class Person(models.Model):
name = models.CharField(max_length=200)
phone = models.CharField(max_length=15)
age = models.IntegerField()

在这里,我需要检查所有输入字段,这些字段在提交之前不应为空,但是当我单击提交按钮时,就会出现错误。请帮我解决这个错误。

最佳答案

您的 JS 实际上并未进行任何验证,因为如果值为空,它不会阻止提交。在这些情况下,您需要返回 false

但是,您不应该这样做。现代浏览器已经包含表单验证,如果您在字段上添加 required 属性,表单验证就会启动。

如果您使用表单类,Django 本身将输出该属性 - 并且同样重要的是,还会在服务器端进行验证。你绝对应该这样做。

关于javascript - 使用 Django 和 Javascript 验证表单字段时出现 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44523112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com