JavaScript - функция проверки - PullRequest
       7

JavaScript - функция проверки

0 голосов
/ 02 февраля 2012

Мне нужно проверить DropDownList в проекте ASP.NET, и я пытаюсь использовать JavaScript, хотя я никогда не использовал его ранее.

Я использую следующее объявление ASP и код JavaScript:

ASP декларация:

<asp:DropDownList ID="ddl1" runat="server" onprerender="ddl1_PreRender" ValidationGroup="AddNewCollection">
</asp:DropDownList>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Choose Type!"
ControlToValidate="ddl1"  ForeColor="Red" ValidationGroup="AddNewCollection" ClientValidationFunction="clientSideCheckValue"></asp:CustomValidator>>

Код JavaScript:

 <script type="text/javascript">
    function clientSideCheckValue(source, args) 
     {
       var result1 = args.Value;   
       var rsult2 = document.getElementById("ddl1").value;
       if (result2 == null) {
          args.IsValid = false;
          return true;
       }
      args.IsValid = true;
    }
</script>

У меня есть два вопроса по поводу кода, упомянутого выше:

1.Почему, когда япечать кода этой строки var result1 = args.Value; intelisense не дает мне возможности выбрать расширение «Значение».

2. На этой строке кода JavaScript var rsult2= document.getElementById ("ddl1"). value;

Я получаю это сообщение об ошибке Ошибка времени выполнения Microsoft JScript: требуется объект . У вас есть идея, почему я столкнулся с этой проблемойи как я могу это исправить?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012
  1. intelisense не может знать, какие свойства / методы имеют аргументы args, поэтому он не может предоставить вам такую ​​возможность.

  2. Скорее всего, вы используетеглавная страница, в этом случае значение id элемента будет изменено на что-то вроде ct100_ddl1 или что-то в этом роде, не могу вспомнить верхнюю часть моей головы.

Предложите вам хороший браузер для разработки этого материала, Chrome или FF + firebug, чтобы вы могли просматривать HTML и отлаживать js.

1 голос
/ 02 февраля 2012

@ Пол: «у intelisense нет способа узнать, какие свойства / методы есть у аргументов args, поэтому он не может дать вам такую ​​возможность». Абсолютно правильно.

@ Майкл:

Предполагая, что ваш JavaScript находится в разметке .aspx, измените вашу строку на var rsult2 = document.getElementById ("<% = ddl1.ClientID"%>). Value ;. Это отобразит фактический идентификатор клиента вашего DropDownList внутри блока скрипта.

Кроме того, вы, похоже, просто убедитесь, что выбран вариант. Намного проще добавить <asp:RequiredFieldValidator /> и установить для свойства ControlToValidate значение "ddl1", если это все, что вы хотите сделать.

Надеюсь, это поможет.

...