2013-12-12 113 views
0

我在使用一些Jquery后遇到问题。单击按钮时文本框消失

我使用VS 2013,asp.net,VB。

我在页面上有一个面板,显示何时从gridview中选择一行。它包含几个文本框和一个下拉列表。我有一个jQuery脚本,隐藏/显示页面上的文本框取决于从下拉列表中选择的内容。代码如下。

<script> 
    function jScript() { 

      $('#LowerText').hide(); 
      $('#UpperText').hide(); 
      $('#min').hide(); 
      $('#max').hide(); 
      $('#CommentsText').hide(); 
      $('#ChangeStatusPnl').css({ "height": "200px" }) 

      $('#AssetStatusChoice').change(function() { 
      if ($('#AssetStatusChoice').val() == "Fully Available") 
      { 
       $('#CommentsText').hide(); 
       $('#LowerText').hide(); 
       $('#UpperText').hide(); 
       $('#min').hide(); 
       $('#max').hide(); 
       $('#ChangeStatusPnl').css({ "height": "200px" }) 

      } 
      if ($('#AssetStatusChoice').val() == "Restricted") 
      { 
       $('#LowerText').show(); 
       $('#UpperText').show(); 
       $('#CommentsText').show(); 
       $('#min').show(); 
       $('#max').show(); 
       $('#ChangeStatusPnl').css({ "height": "340px" }) 


      } 
      if ($('#AssetStatusChoice').val() == "Unavailable") 
      { 
       $('#LowerText').hide(); 
       $('#UpperText').hide(); 
       $('#min').hide(); 
       $('#max').hide(); 
       $('#CommentsText').show(); 
       $('#ChangeStatusPnl').css({ "height": "280px" }) 


      } 
     }); 
     }; 

      </script> 

这工作正常。

当用户单击面板上的提交按钮时,输入到文本框中的数据将保存到MS SQL DB中。我已经为每个文本框添加了一些代码来验证添加到它的内容(所以它不是空白的,或者有应该有数字的字母)。下面显示了此代码的一个示例。如果出现错误,它会更改边框的颜色。此外,如果存在验证问题,我还添加了一行代码来停止SQL存储过程。

Dim isValid As Boolean 
    isValid = True 
    Dim intValidate As Integer 
    If Not Integer.TryParse(TimeTextHrs.Text, intValidate) Or TimeTextHrs.Text = "" Then 

     AssetPopUp.Show() 
     TimeTextHrs.BorderColor = Drawing.Color.Red 
     isValid = False 

    End If 

我的问题是,当用户点击该面板是现在,因为什么是下拉列表内选择可见的框消失,就好像它重新加载面板内提交。我需要他们保持可见。如果你看看上面的JQuery,你可以看到从下拉列表中选择了3个文本框显示的限制。当用户点击提交时,这些消失。

希望大家都有道理。

+1

你真的很喜欢反复重复你的代码。 – melancia

+0

感谢您的有用评论。我正在通过测试,所以我在进入生产时会清理它。它是我用过的第一个jquery,所以我仍然在学习。 – Silentbob

回答

0

当页面加载设置可见性时,您将不得不运行一些js。

您还应该考虑重构此逻辑,以便它更易于维护。

 $(function() { 

     if ($('#AssetStatusChoice').val() == "Fully Available") 
     { 
      $('#CommentsText').hide(); 
      $('#LowerText').hide(); 
      $('#UpperText').hide(); 
      $('#min').hide(); 
      $('#max').hide(); 
      $('#ChangeStatusPnl').css({ "height": "200px" }) 

     } 
     if ($('#AssetStatusChoice').val() == "Restricted") 
     { 
      $('#LowerText').show(); 
      $('#UpperText').show(); 
      $('#CommentsText').show(); 
      $('#min').show(); 
      $('#max').show(); 
      $('#ChangeStatusPnl').css({ "height": "340px" }) 


     } 
     if ($('#AssetStatusChoice').val() == "Unavailable") 
     { 
      $('#LowerText').hide(); 
      $('#UpperText').hide(); 
      $('#min').hide(); 
      $('#max').hide(); 
      $('#CommentsText').show(); 
      $('#ChangeStatusPnl').css({ "height": "280px" }) 


     } 

});