我正在尝试为我的Django表单添加一些客户端Ajax验证。我要警告用户,因为他们正在输入字段,如果他们刚刚输入的任何字符都不是ascii。
我最初将基本的python放在表单的clean
方法中以检查ascii字符。但是,我不想这样做,因为我不想产生错误,而是发出警告消息,然后让用户继续执行表单的其余部分。
try:
field_value.decode('ascii')
except UnicodeEncodeError:
#raise forms.ValidationError("Non-ASCII characters may cause issues in registering your data. Consider removing these characters. You may still submit at your own risk.")
# Just want to show a warning so the user can still submit the form if they wish
我想在用户输入时在字段下显示一个小的警告。我试过使用django-dajax,但不确定。我怎样才能做到这一点?
编辑:
为了澄清,我想在用户提交表单之前显示警告。因此,当他们填写表格时...
参考方案
使用JavaScript验证该表单字段。
示例(使用jQuery):
<form>
<input name="whatever" id="fieldId">
...
</form>
<script type="text/javascript">
/* Define a function to check the form field value */
function containsAllAscii(str) {
return /^[\000-\177]*$/.test(str); // returns true if all are ASCII characters. false otherwise.
}
/* Now a little jQuery */
$('#fieldId').on('change', function() {
str = $(this).val();
is_valid = containsAllAscii(str);
if (!is_valid) {
window.alert("There are Non-ASCII characters in the input field");
}
});
</script>
上面的代码会在每次更改(即失去焦点)时检查给定字段的值。您可以使用.on('keyup', ...
代替.on('change', ...
,这将在用户键入时检查字段的值。
最后,显示的错误消息只是浏览器警报。太烂了。您可以显示一条漂亮的错误消息,您只需要学习更多jQuery。但我希望我给您一个很好的起点。
学分:
containsAllAscii
功能的代码是this answer从Juan Mendes摘录的。
我关注这篇文章:Free JavaScript obfuscators?找到一个JavaScript混淆器,可以帮助我在客户端混淆一些JavaScript数据。但我发现这些选择都不是python或javascript lib,they use java,我使用django,所以我想知道,最好的免费JavaScript混淆器是javascript库或pytho…
Javascript-从当前网址中删除查询字符串 - javascript单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…
Django调试工具栏错误的路径 - javascript我创建了一个Django应用,并将其部署到服务器上。我使用了一些额外的django功能,例如django-debug-toolbar,该功能是使用pip从我的requirements.txt文件中安装的。当我在localhost上本地运行应用程序时,一切正常,并且额外功能已成功加载。这是加载的源的正确结构:但是当我出于某种原因从服务器运行我的应用程序时,路径…
Django在初始化中将波兰语字符传递给Angular会导致lexer错误 - javascript这是问题所在-我想使用init从Django传递到Angular数据。我将通过以下方式进行操作:<div ng-init="supervisor={{supervision.supervisor}}"> 哪个看起来还好吧?但是,一旦变量{{supervision.supervisor}}包含Lexer Error: Unexp…
Mongo汇总 - javascript我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …