1

网站将专门用于移动设备。所以对于只需要数字输入的字段,我想调出数字键盘。我可以通过使用类型设置为的 html 输入元素成功地做到这一点tel。我想在asp:RequiredFieldValidator此字段中添加一个并基于MSDN

我需要将输入设置为runat="server". 当我这样做时,我得到了这个错误;

tel不是输入标签的有效类型。

如果我删除runat="server",我得到

找不到属性Contract引用的控件 IDControlToValidate''

这是我的代码:

<input type="tel" runat="server" id="Contract"></input>
<asp:RequiredFieldValidator runat="server" ControlToValidate="Contract" 
                            ValidationGroup="IfOnRent" Text="*" 
                            ErrorMessage="Contract Required">
</asp:RequiredFieldValidator>

我只是运气不好,必须编写自己的验证代码吗?

4

4 回答 4

1

您可能希望在代码“front”中未声明“type”。您可以在后面的代码中设置它(可能在Page_Initor中Page_Load):

this.Contract.Attributes.Add("type", "tel");
于 2012-06-04T20:48:31.547 回答
0

如果您安装了 Microsoft .NET Framework 4 Reliability Update 1 (KB2533523),则TextBox接受新的 html5 输入类型(您也需要它UpdatePanel来在回发时识别它们)。

或者您可以HtmlInputText在自己的控件中继承(任何 .net 版本 - 任何输入类型):

[ToolboxData("<{0}:Input runat='server' />"), Themeable(true)]
public sealed class Input: HtmlInputText { }
于 2012-06-04T21:31:45.360 回答
0

如果你使用 C#

Contract.Attributes["type"]="tel"

为 html 输入编写内联类型可能会在 .net 中产生解析错误。所以在你的PageLoad()中添加上面的代码行

于 2019-05-31T03:17:34.550 回答
-2

您可以使用确保提交按钮具有与 requiredfieldvalidator 相同的验证组属性值

于 2012-06-06T13:04:07.980 回答