JavaScript 不能与 RadTextBox 一起使用


 <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function ValidatePhoneNumbers() {
                var phone = document.getElementById('txtPhone1');
                var mobile =document.getElementById('txtPhone2');
                alert(phone.value);
                if ((phone.value == null || phone.value == "") && (mobile.value == null || mobile.value == "")) {
                    alert('something');
                    return false;
                }
                else {
                    alert('something');
                    return true;
                }
           }
        </script>

<tr>
                                        <td>
                                         <label for="txtPhone1">
                                                Phone :</label>
                                        </td>
                                        <td>
                                            <telerik:RadNumericTextBox ID="txtPhone1" runat="server" Text='<%# Bind("Phone_One") %>' Type="Number" Skin="Windows7" CssClass="txt">
                                                     <numberformat allowrounding="false" keepnotroundedvalue="False" GroupSeparator=""></numberformat>
                                            </telerik:RadNumericTextBox>
                                            <asp:CustomValidator ID="rqfldPhone1" runat="server" ControlToValidate="txtPhone1"
                                                Display="Dynamic" ErrorMessage="*" ValidationGroup="Submit" ToolTip="Enter Phone Number"  ></asp:CustomValidator>
                                        </td>

 <telerik:RadButton ID="btnUpdate" runat="server" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
                                    CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'
                                    Skin="Windows7" ValidationGroup="Submit">

当我将"OnClientClicked"添加到RadButton以在javaScript中调用javaScript("返回Validate电话号码")时,它显示空为什么?有 2 个 rad 文本框 txtphone1 和 txtphone2 ,实际上我想验证这些文本框,如果任何一个没有填充,否则我需要显示错误/警告消息。请帮助我

实际上".value"在javascript(文档)中没有显示。GetelementById.value)

当你使用 telerik 控件时,javascript 查找控件和执行操作与我们处理普通 html 和 javascript 不同:

要查找 radcombox:

$find("<%=RadComboBox1.ClientID %>");//for example

让我们解决您的问题:

var phone=$find("<%=txtPhone1.ClientID %>");
var mobile=$find("<%=txtPhone2.ClientID %>");
alert(phone.get_value());//use get_value() to get the value of radcombobox
if ((phone.get_value() == null || phone.get_value() == "") && (mobile.get_value() == null ||  mobile.get_value()== "")) {
        alert('something');
        eventArgs.set_cancel(true);
    }
    else {
        alert('something');
    }
}

OnClientClicked 事件将按名称运行具有 2 个参数的函数,这些参数类似于 .NET 事件处理程序(sender 和 eventArgs)使用的参数。Telerik 控件不会以与常规 HTML 对象相同的方式取消操作,因为该return false;不会取消回发。相反,Telerik API 在 eventArgs 参数中提供了一个 set_cancel() 函数。

function ValidatePhoneNumbers(sender, eventArgs) {
    var phone = document.getElementById('<%= txtPhone1.ClientId %>'); // Corrected as per my comment
    var mobile =document.getElementById('<%= txtPhone2.ClientId %>'); // Corrected as per my comment
    alert(phone.value);
    if ((phone.value == null || phone.value == "") && (mobile.value == null || mobile.value == "")) {
        alert('something');
        eventArgs.set_cancel(true);
    }
    else {
        alert('something');
    }
}

您不需要设置OnClientClicked="return ValidatePhoneNumbers"而是我会使用OnClientClicking ="ValidatePhoneNumbers"重新评论(请参阅:http://www.telerik.com/help/aspnet-ajax/button-onclientclicking.html)

有关客户端事件处理程序的详细信息,请参阅:http://demos.telerik.com/aspnet-ajax/menu/examples/programming/clientevents/defaultcs.aspx

验证程序应在按下按钮时触发,如果未设置CausesValidation="True",则可以考虑使用 RequiredFieldValidator 以确保在回发之前填充它。

相关内容

  • 没有找到相关文章

最新更新