0
 <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 ("return ValidatePhoneNumbers") を呼び出すと、NULL が表示されるのはなぜですか? 2 つの rad テキスト ボックス txtphone1 と txtphone2 があります。実際には、これらのテキスト ボックスを検証したいのですが、いずれかが問題なく満たされている場合は、エラー/警告メッセージを表示する必要があります。助けてください

実は「.value」はjavascriptでは表示されません(document.GetelementById.value)

4

2 に答える 2

2

OnClientClicked イベントは、2 つのパラメーターを持つ名前で関数を実行します。これらは、.NET イベント ハンドラー (sender および eventArgs) で使用されるものと似ています。return false;Telerik コントロールは、ポスト バックをキャンセルしない一般的な HTML オブジェクトと同じ方法でアクションをキャンセルしません。代わりに、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 を検討してください。

于 2013-10-23T15:14:20.173 に答える
2

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');
    }
}
于 2013-10-25T07:10:09.273 に答える