2012-04-28 4 views
-3

Следующий код отлично подходит для обеспечения соблюдения правил валидации.Не могли бы вы помочь мне изменить этот JavaScript?

function validate() { 

    if (document.getElementById("<%=txtName.ClientID%>").value == "") { 
     alert("Please enter name"); 
     document.getElementById("<%=txtName.ClientID%>").focus(); 
     return false; 
    } 

    if (document.getElementById("<%=txtCity.ClientID %>").value == "") { 
     alert("Please enter city"); 
     document.getElementById("<%=txtCity.ClientID %>").focus(); 
     return false; 
    } 
    if (document.getElementById("<%=txtState.ClientID%>").value == "") { 
     alert("Please enter state"); 
     document.getElementById("<%=txtState.ClientID%>").focus(); 
     return false; 
    } 
    if (document.getElementById("<%=txtZip.ClientID%>").value == "") { 
     alert("Please enter zip"); 
     document.getElementById("<%=txtZip.ClientID%>").focus(); 
     return false; 
    } 
    if (checkradio() == false) { 
     alert("Please enter contacts"); 
     document.getElementById("<%=txtContacts.ClientID%>").focus(); 
     return false; 
    } 
    return true; 
} 

Моя проблема заключается в том, что форма разбита на 2 раздела, раздел 1 и раздел 2.

Второй 1 содержит необходимые поля формы и раздел 2 содержит поле опции.

Правило состоит в том, что вы не можете выбирать из обоих разделов одновременно. Вы можете выбрать из раздела 1 ИЛИ раздела 2.

Раздел 1 имеет поля формы, которые требуются, и поля раздела 2 ahas формы в той же форме, которые являются необязательными.

Если я выберу из раздела 1, все в порядке.

Если выбор я из раздела 2, так как они находятся на одной и той же форме, правила проверки загнуться.

Есть ли способ, чтобы обусловить форму, чтобы сказать, если поля формы из раздела 2 не являются пустыми, то никакие правила валидации не действуют?

Еще лучше, в классическом asp, вы можете иметь несколько форм в одном файле.

Возможно ли это в asp.net?

Я думаю, что это исключит валидацию при удалении при выборе из дополнительных полей.

Извините за длинную тему.

+0

Кенни, если мой ответ ниже помог, пожалуйста, отметьте его как таковой; в противном случае, пожалуйста, сообщите нам, с чем вам нужна помощь. – Andrey

+0

Спасибо, Андрей. Я пытаюсь понять, как использовать несколько форм в asp.net. Как только я смогу это понять, я проверю ваше предлагаемое решение. Я отправлю сообщение как можно скорее. – Kenny

ответ

0
  1. В ASP.NET можно иметь несколько форм, просто добавьте несколько форм в свою разметку.
  2. В вашей функции проверки сначала проверьте, установлено ли какое-либо из элементов управления формы2, и затем верните значение true; в противном случае выполните другие проверки.

    function validate() { 
    
    if(... check if any controls of form 2 are set ...) return true; 
    
    // Otherwise proceed with checks for form 1 
    
    if (document.getElementById("<%=txtName.ClientID%>").value == "") { 
        alert("Please enter name"); 
        document.getElementById("<%=txtName.ClientID%>").focus(); 
        return false; 
    } 
    
    .... 
    
+0

исправить 'function validate() {'. (этот msg будет самоуничтожить, когда вы/кто-нибудь сделаете редактирование) – ajax333221

+0

Мне удалось исправить его, используя только одну форму и следующее: if txtfield1FromSection2! = "" && txtfield2FromSection2 { return true; в противном случае они пусты, проверьте поля формы в первом разделе. Он отлично работает, но мне все еще нравится логика Андрея, хотя я не мог собрать все это вместе. – Kenny

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