我在验证电子邮件方面遇到了一些问题.
在我的模型中:
[Required(ErrorMessage = "Field can't be empty")]
[DataType(DataType.EmailAddress, ErrorMessage = "E-mail is not valid")]
public string ReceiverMail { get; set; }
Run Code Online (Sandbox Code Playgroud)
在我看来:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@Html.TextBoxFor(m => m.ReceiverMail, new { @placeholder="E-mail"}) <br />
@Html.ValidationMessageFor(m => m.ReceiverMail)
Run Code Online (Sandbox Code Playgroud)
现在,当你将场留空时,它正确地向我显示"场不能为空".但是当你填写一个无效的电子邮件地址,如:"fwenrjfw",那么表格并没有说"电子邮件无效".
如何获取表单以将输入验证为电子邮件地址?我正在寻找一些帮助.
我仔细阅读了JSON描述http://json.org/,但我不确定我是否知道这个简单问题的答案.哪些字符串是最小可能的有效JSON?
"string" 字符串是有效的JSON吗?42 是简单的数字有效JSON?true 布尔值是有效的JSON吗?{} 空对象是有效的JSON吗?[] 空数组是一个有效的JSON吗?我知道LI里面的DIV是不被允许的,但我最近在很多"大"网站上都看过它:Smashing Magazine,Web Designer Wall ......等我尝试验证网站,他们有错误,但没有关于李的div?!
所以我可以在LI里面使用它,我需要它才有效吗?
我想知道对用户输入执行表单验证的最简洁和最好的方法是什么.我见过一些开发人员实现的org.springframework.validation.Validator.关于这一点的问题:我看到它验证了一个类.是否必须使用用户输入中的值手动填充类,然后传递给验证器?
我对用于验证用户输入的最干净,最好的方法感到困惑.我知道传统的使用方法,request.getParameter()然后手动检查nulls,但我不想在我的所有验证Controller.关于这方面的一些好建议将不胜感激.我没有在这个应用程序中使用Hibernate.
我正在使用angularjs编写一个简单的登录表单,其中包含一些客户端输入验证,以检查用户名和密码是否为空且超过三个字符.请参阅以下代码:
<form name="loginform" novalidate ng-submit="login.submit()" class="css-form">
<fieldset>
<div class="control-group input-prepend">
<span class="add-on"><i class="icon-user"></i></span>
<input type="text" ng-model="login.username" name="username" required ng-minlength="3" placeholder="username" />
</div>
<div class="control-group input-prepend">
<span class="add-on"><i class="icon-lock"></i></span>
<input type="password" ng-model="login.password" name="password" required ng-minlength="3" placeholder="" />
</div>
<div class="control-group">
<input class="btn" type="submit" value="Log in">
</div>
</fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)
和控制器:
var controller = function($scope) {
$scope.login = {
submit: function() {
Console.info($scope.login.username + ' ' + $scope.login.password);
}
}
};
Run Code Online (Sandbox Code Playgroud)
问题是login.submit即使输入无效,也会调用该函数.是否有可能阻止这种行为?
作为旁注,我可以提一下,我也使用bootstrap和requirejs.
在表单提交,验证后的其他文本和视觉辅助工具中,我将输入框着色为红色以表示需要注意的交互区域.
在Chrome(以及Google工具栏用户)上,自动填充功能会将输入表单重新着色为黄色.这是一个复杂的问题:我想在我的表单上允许自动完成,因为它可以加速用户登录.我将检查是否/当触发错误时将自动完成属性关闭,但它是一个复杂的一点编码以编程方式关闭页面上单个受影响输入的自动完成.简而言之,这将是一个令人头疼的问题.
因此,为了避免这个问题,有没有更简单的方法阻止Chrome重新着色输入框?
[编辑]我尝试了下面的!重要建议,它没有任何效果.我还没有检查Google工具栏,看看!important属性是否适合.
据我所知,除了使用自动完成属性(看起来确实有效)之外,没有任何其他方法.
验证用户输入的IP有效的最佳方法是什么?它以字符串形式出现.
使用支持HTML5的新浏览器时(例如FireFox 4);
并且表单字段具有该属性required='required';
表格字段为空/空白;
然后点击提交按钮;
浏览器检测到"required"字段为空并且不提交表单;
而是浏览器显示一个提示,要求用户在该字段中键入文本.
现在,我有一组复选框,而不是单个文本字段,其中至少有一个复选框应由用户检查/选择.
如何required在此组复选框上使用HTML5 属性?(由于只需要检查其中一个复选框,我不能将该required属性放在每个复选框上)
PS.我正在使用simple_form,如果这很重要的话.
UPDATE
可以在HTML 5 multiple的属性是有帮助吗?有没有人用它来做类似我问题的事情?
这似乎是这个功能不是HTML5规范的支持: ISSUE-111:什么是输入@需要均值@type =复选框?
(问题状态:问题已被标记为关闭而没有偏见.)以下是解释.
这是一个老问题,但是想澄清一下,问题的初衷是能够在不使用Javascript的情况下完成上述操作 - 即使用HTML5方式.回想起来,我应该让"没有Javascript"更加明显.
什么是最佳HTTP响应代码不报告200(一切正常)但输入错误?
比如,你向服务器提交一些数据,它会回应你的数据是错误的
使用500看起来更像服务器问题
使用200警告/错误响应文本是坏的(允许缓存,一切都不好)
使用204和返回任何东西,可能是好的(但很好支持?)如果请求的路径(脚本)可用,则
使用404错误在适当的地方
我正在教自己一些基本的刮擦,我发现有时我输入到我的代码中的URL返回404,这会使我的所有其余代码变得粗糙.
所以我需要在代码顶部进行测试,以检查URL是否返回404.
这似乎是一项相当直接的任务,但谷歌没有给我任何答案.我担心我在寻找错误的东西.
一篇博客推荐我用这个:
$valid = @fsockopen($url, 80, $errno, $errstr, 30);
Run Code Online (Sandbox Code Playgroud)
然后测试以查看$ valid是否为空.
但我认为给我问题的URL有一个重定向,所以$ valid对所有值都是空的.或许我做错了什么.
我也查看了"头部请求",但我还没有找到任何可以使用或尝试的实际代码示例.
建议?这是关于卷曲的?
validation ×10
http ×2
angularjs ×1
api ×1
asp.net-mvc ×1
c# ×1
checkbox ×1
css ×1
forms ×1
html ×1
html-input ×1
html-lists ×1
html5 ×1
http-headers ×1
ip-address ×1
java ×1
javascript ×1
json ×1
networking ×1
php ×1
python ×1
spring-mvc ×1
user-input ×1
xhtml ×1