我有一个带有输入字段和验证设置的表单,通过添加required属性等.但对于某些领域,我需要做一些额外的验证.我如何"点击" FormController控件的验证?
自定义验证可能类似于"如果填写了这3个字段,则此字段是必需的,需要以特定方式进行格式化".
有一种方法,FormController.$setValidity但看起来不像公共API,所以我宁愿不使用它.创建一个自定义指令并使用NgModelController看起来像另一个选项,但基本上要求我为每个自定义验证规则创建一个指令,这是我不想要的.
实际上,将控制器中的字段标记为无效(同时保持FormController同步)可能是我在最简单的场景中完成工作所需要的,但我不知道该怎么做.
我怎样才能获得一个领域的"真实"价值<input type="number">?
我有一个input盒子,我正在使用更新的HTML5输入类型number:
<input id="edQuantity" type="number">
Run Code Online (Sandbox Code Playgroud)
这主要在Chrome 29中受支持:

我现在需要的是能够读取用户在输入框中输入的"原始"值.如果用户输入了一个数字:

然后edQuantity.value = 4,一切都很好.
但是如果用户输入了无效文本,我想将输入框的颜色设置为红色:

不幸的是,对于type="number"输入框,如果文本框中的值不是数字,则value返回空字符串:
edQuantity.value = "" (String);
Run Code Online (Sandbox Code Playgroud)
(至少在Chrome 29中)
如何获得控件的"原始"值<input type="number">?
我试着浏览Chrome的输入框的其他属性列表:

我没有看到任何类似于实际输入的东西.
我也找不到方法来判断盒子是否"空".也许我可以推断:
value isEmpty Conclusion
============= ============= ================
"4" false valid number
"" true empty box; not a problem
"" false invalid text; color it red
Run Code Online (Sandbox Code Playgroud)
注意:您可以忽略水平规则后的所有内容; 它只是填充物来证明这个问题.另外:不要将示例与问题混淆.人们可能要回答这个问题的原因其他比着色盒红(一个例子:转换文本"four"成拉丁"4"onblur事件中的符号) …
我正在尝试使用PhoneGap开发一些iPhone应用程序.PhoneGap基本上包装了一个UIWebView - 它运行良好.问题是我的应用程序有几个输入字段只接受数字输入.我真的需要强制数字小键盘而不是接受默认的标准键盘,然后强制用户切换到每个字段上的数字.有谁知道这是否可能?怎么样?
澄清:我知道Apple目前不提供任何API来允许此操作.我想知道创建一个从UIWebView继承的自定义类是否有帮助,或者创建自定义键盘是否会开辟一些可能性?
2009年11月6日更新 - 如下所述,Apple最近更新了safari功能,以便再次支持.所以接受的答案被改变以反映这一点.
<html>
<input type='tel'/>
<input type='number'/>
<input type='email'/>
<input />
</html>
Run Code Online (Sandbox Code Playgroud) angularjs ×1
cordova ×1
html5 ×1
input ×1
iphone ×1
javascript ×1
keyboard ×1
uiwebview ×1
validation ×1