2013-04-09 3 views
0

Я хочу установить видимый valError. Я пробовал все, но это не сработало. Может кто-нибудь мне помочь?set div visible

<script type="text/javascript">  
    function ValidateTextBox(elem) { 
     if (elem.val() == "") {     
      return false; 
     } 
     else return true; 
    } 

    function ValidateForm() { 
     var a = ValidateTextBox($('[id$=txtBxLangName]')); 

     if (a) 
      return true; 
     else {           
      $('#valError').html('Please fill required field'); 
      $('#valError').show(); 
      return false; 
      } 
    } 
</script> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <div class="alert alert-error" visible="false" id="valError" runat="server">      
    </div>       
    <asp:TextBox ID="txtBxLangName" runat="server" CssClass="textEntry"> 
    </asp:TextBox> 
    <asp:Button ID="btnNewAndUpdate" runat="server" Text="Save" OnClick="btnNewAndUpdate_Click" OnClientClick="return ValidateForm()" /> 
</asp:Content> 

ответ

9
<div class="alert alert-error" visible="false" id="valError" runat="server"> 

должен быть

<div class="alert alert-error" style="display: none" id="valError" runat="server"> 

Тогда .show() будет работать.

Только для целей других просмотра этого ниже ответ показывает, что еще требуется для этого решения для работы:

<asp:TextBox ID="txtBxLangName" runat="server" CssClass="textEntry" ClientIDMode="Static"> 
</asp:TextBox> 
+1

Может 'display' стиль был определен в стилях ... – VisioN

+0

Если да, то я считаю, что видимый = ложь будет иметь негативное влияние на .Show() –

+1

@VisioN: Ненужные. Свойство .NET 'visible =" false "' все равно будет означать, что элемент вообще не отображается, поэтому не будет показано его с помощью jQuery. –

2

@thedixon ответ является правильным, однако у вас есть еще один вопрос, тоже. Текстовое поле txtBxLangName может не иметь этого идентификатора, когда .net передает его клиенту. Попробуйте добавить ClientIDMode со значением статического, чтобы убедиться, что ID установлен в txtBxLangName

<asp:TextBox ID="txtBxLangName" runat="server" CssClass="textEntry"> 
    </asp:TextBox> 

становится

<asp:TextBox ID="txtBxLangName" runat="server" CssClass="textEntry" ClientIDMode="Static"> 
    </asp:TextBox> 
+1

И после этого вы можете просто сделать: var a = ValidateTextBox ($ ('# txtBxLangName')); –

+1

+1. Поскольку '# valError' является' runat = "server", ему также понадобится 'ClientIDMode =" Static ", я полагаю. И это, и исправление @ thedixon необходимо применять для работы jQuery. –

+0

Да, @baros понадобится оба этих ответа для исправления. –

-1

Он должен показывать с .Show, убедитесь, что #valError DIV имеют некоторое содержание в нем или наборе это ширина, высота и фон и попробовать блок отображения.

$('#valError').css('display','block');