H.AL Ответов: 1

Как добавить 'вниз название функции' в ASP:TextBox на событие загрузки страницы


У меня есть текстовое поле asp:, которое принимает номер телефона. Он отлично работает таким образом:
<asp:TextBox ID="txtPhoneNumber" onCopy="return false" onDrag="return false" onDrop="return false" onPaste="return false" onkeydown="javascript: return HandlePhoneNumber(this);"  clientidmode="Static" Font-Size="13px" Height="15px" runat="server" Width="105px" ></asp:TextBox>


Теперь я пытаюсь сделать вот что:я хочу изменить имя функции onkeydown в окне.событие Load. Как я могу это сделать ? Ниже приведен мой код:

<script type="text/javascript" language="javascript">
 window.onload = CheckCountry;
 function CheckCountry() {
          
          var country ='<%=System.Configuration.ConfigurationManager
          .AppSettings("LoginCountry").ToString() %>';
                   
          var txtPhoneNumber = $("#txtPhoneNumber");
          var maxLength = txtPhoneNumber.attr('maxLength');
          var phoneNumber = txtPhoneNumber.val();

          if (country == 'X') {
            maxLength = '14';
            phoneNumber = '963-';
            // here I need to make function name = HandlePhoneNumberX
          }
          else {
            maxLength = '12';
            phoneNumber = '961-';
           // here I need to make function name = HandlePhoneNumberY
          }
}
</script>


Есть предложения? Я не возражаю, если вы поможете мне найти решение javascript или jQuery

Что я уже пробовал:

Я уже пробовал это :

if (country == 'X') {
  maxLength = '14';
  phoneNumber = '963-';
  txtPhoneNumber.on('keydown', function (e) { return HandlePhoneNumberX(e);
}
else {
  maxLength = '12';
  phoneNumber = '961-';
 txtPhoneNumber.on('keydown', function (e) { return HandlePhoneNumberY(e);
}


Здесь ничего не сработало ...

F-ES Sitecore

Что плохого в том, что у тебя есть?

1 Ответов

Рейтинг:
5

SrikantSahu

Это работает на меня. Просто попробовал следующий код. Пожалуйста, посмотрите, есть ли у вас какая-либо синтаксическая ошибка на вашем конце.

<script type="text/javascript" language="javascript">
    window.onload = CheckCountry;
    function CheckCountry() {

        var country = 'X';

        var txtPhoneNumber = $('#txtPhoneNumber');
        var maxLength = txtPhoneNumber.attr('maxLength');
        var phoneNumber = txtPhoneNumber.val();

        if (country == 'X') {
            maxLength = '14';
            phoneNumber = '963-';
            txtPhoneNumber.on('keydown', function (e) {
                return HandlePhoneNumberX(e, maxLength, phoneNumber);
            });
        } else {
            maxLength = '12';
            phoneNumber = '961-';
            txtPhoneNumber.on('keydown', function (e) {
                return HandlePhoneNumberY(e, maxLength, phoneNumber);
            });
        }
    }

    function HandlePhoneNumberX(e, maxLength, phoneNumber) { alert(maxLength + "-" + phoneNumber); }
    function HandlePhoneNumberY(e, maxLength, phoneNumber) { alert(maxLength + "-" + phoneNumber); }
</script>

    <asp:TextBox ID="txtPhoneNumber" onCopy="return false" onDrag="return false" onDrop="return false" onPaste="return false"  clientidmode="Static" Font-Size="13px" Height="15px" runat="server" Width="105px" ></asp:TextBox>
</asp:Content>

Кроме того, 2 функции проверки могут быть не нужны. Просто объедините их в 1. Я не использовал атрибут onkeydown в объявлении текстового поля.


H.AL

Я не могу, потому что мне нужно реализовать эту функцию в файле .js , поэтому я не могу получить страну там

H.AL

Я думаю, что есть что-то неправильное, делая это, потому что даже предупреждение здесь не работает

 txtPhoneNumber.on('keydown', function (e) { alert("test"); return false; }); 

и клавиатура работает в то время как false возвращается

SrikantSahu

Вообще-то, можно. Имейте глобальное поле js, получите значение страны там в onload и используйте его в своем файле js.

SrikantSahu

можешь попробовать
txtPhoneNumber[0]. onkeydown = function () {alert(1);}
вместо обработчика событий

H.AL

- txtPhoneNumber[0]. onkeydown = function () {alert(1);} не работает
- Я попытаюсь найти глобальное поле js и вернуться назад ...

H.AL

Вы спасли мне жизнь, рассказав о глобальной переменной js, большое вам спасибо !
Но я все еще любопытен, чтобы знать, как это сделать, если кто-то может мне сказать ...

SrikantSahu

Пожалуйста, ознакомьтесь с моим обновленным решением