2012-03-26 5 views
0

У меня есть два текстовых поля: один для запланированной даты, а другой для запланированного времени. Я хочу пройти проверку, если оба текстовых поля пусты или оба имеют контент. Я хочу пропустить проверку, если только один имеет контент. Все работает на стороне сервера, и следующий код на стороне клиента работает корректно в Chrome.ASP.NET 2.0 Пользовательская проверка на стороне клиента не работает в Internet Explorer

function CheckScheduledDateTime(sender, args) { 
     if (ctl00_MainContent_txtScheduledTime.value!="" || ctl00_MainContent_txtScheduledDate.value!="") 
     { 
      if (ctl00_MainContent_txtScheduledTime.value!="" && ctl00_MainContent_txtScheduledDate.value=="") 
      { 
       args.IsValid=false; 
       alert("Scheduled date is required"); 
      } 
      else if (ctl00_MainContent_txtScheduledTime.value=="" && ctl00_MainContent_txtScheduledDate.value1!="") 
      { 
       args.IsValid=false; 
       alert("Scheduled time is required"); 
      } 
      else 
      { 
       args.IsValid=true; 
      } 

     } 
     else 
     { 
      args.IsValid = true; 
     }   
    } 

В Internet Explorer, он не работает, и я получаю следующее сообщение об ошибке:

"ошибка выполнения Microsoft JScript: 'ctl00_MainContent_txtScheduledTime' не определена"

странное дело, с он сломался в Visual Studio, если я затем попытаюсь снова войти в него, он снова сломается, но затем, если я попытаюсь войти в него в третий раз, он будет работать, и проверка корректно работает.

Может ли кто-нибудь пролить свет на это?

+1

Вы используете document.getElementById ('ctl00_MainContent_txtScheduledTime')? –

+0

Этот код был фактически взят из обработанного браузером кода, я использую '<% = txtScheduledTime.ClientID%>. Value' во всех местах, где вы видите' ctl00_MainContent_txtScheduledTime.value', аналогично для поля даты. Я не использую document.getElementById. – fourdam

+0

Изменение на 'if (document.getElementById ('<% = txtScheduledTime.ClientID%>'). Value! =" "|| document.getElementById ('<% = txtScheduledDate.ClientID%>'). Value! =" ") 'работал с удовольствием, спасибо! – fourdam

ответ

1

Вы можете использовать его как этот

ctl00_MainContent_txtScheduledTime не JavaScript переменные, пока вы не инициализировать их с помощью

var ctl00_MainContent_txtScheduledTime = document.getElementById('<%=txtScheduledTime.ClientID%>'); 

или вы можете использовать его как

(document.getElementById('<%=txtScheduledTime.ClientID%>').value!="" || document.getElementById('<%=txtScheduledDate.ClientID%>').value!="") 

С уважением.

 Смежные вопросы

  • Нет связанных вопросов^_^