始终显示ASP.NET TextBox工具提示

时间:2018-04-06 09:02:20

标签: jquery asp.net

我制作了一个脚本,用于比较两个ASP.NET TextBox的值:

   <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
   <script type="text/javascript"></script>
   <script>
       $(document).ready(function () {
           var _t1 = $(document.getElementById("<%=TextBox1.ClientID%>"));
           var _t2 = $(document.getElementById("<%=TextBox2.ClientID%>"));
           $(_t1).on("keyup", function () {
               if (_t1.val() == _t2.val()) {
                   $(_t1).attr('title', 'MATCH');
               }
               else {
                   $(_t1).attr('title', 'NO MATCH');
               }
           });
       });
       </script>

现在,结果(如果匹配与否)将显示在工具提示中。我可以以某种方式强制该工具提示始终显示吗?

2 个答案:

答案 0 :(得分:2)

实际上title工具提示只有当您将鼠标悬停在具有某些值的title属性并且您没有执行任何键盘key-press,up,down等的特定元素上时才会显示所以,如果你想在任何一个盒子中绑定并显示该匹配或不匹配,就要显示该消息。您需要使用label并在其中设置值,并仅在您输入t1或t2时显示标签。检查以下建议。

&#13;
&#13;
$(document).ready(function () {

  var _t1 = $('#first');
  var _t2 = $('#second');
  
  $(document).on("keyup", '#first, #second' ,
      function () {  	  
        if ($(_t1).val() == $(_t2).val()) {
          $('#IsMatch').html('MATCH');
        }
        else {
          $('#IsMatch').html('NO MATCH');
        }
  });
  
  //show label only if has focus on first or second textbox
  $(document).on('focus blur', '#first, #second', 
  	 function(){    
  		if ($(_t1).is(':focus') || $(_t2).is(':focus')) {
      	$('#IsMatch').fadeIn('fast');
      }
      else {      
      	$('#IsMatch').fadeOut('fast');
      }
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='first'>
<br/>
<input type='text' id='second'>
<br/>
<label id='IsMatch'></label>
<br/>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在Asp.Net中,您无法覆盖工具提示的行为。 您可以使用标签而不是工具提示。

在Windows窗体中,您可以使用ToolTip.ShowAlways可以使用。 https://msdn.microsoft.com/en-us/library/system.windows.forms.tooltip.showalways(v=vs.110).aspx