2010-07-15 63 views
5
  1. 我有两个文本框A,B使用(Html.textboxfor)。
  2. TextBox'A'已启用且TextBox'B'已禁用。
  3. 当我在文本框'A'中键入值并单击外部(从文本框中移出光标)时,TextBox'B'应该填充一些值。

例如:文本框A =“王”的IAM进入值,如果聚焦从箱丢失, 在文本框B中的值应为“彼得”,其应该被自动填充。如何从文本框失去焦点后调用事件,asp.net mvc

我使用asp.net mvc。

+0

我不知道ASP,但你应该听的事件是'blur' – David 2010-07-15 09:56:59

+1

似乎可以用jQuery的的onblur()来解决,但会有你想要的之间应用任何逻辑文本框A和内容显示在文本框B上?如果它与数据查询相关联,则可能还需要在您的jquery blur事件中使用ajax调用 – 2010-07-16 02:41:27

回答

3

你可以仅仅指刚给文本框的onblur的attrbiute,并呼吁这将填补第二个文本框

类似的方法:

<script language="javascript"> 
     function fllB() 
     { 
      var txtB = document.getElementById("txtB"); 
      var txtA = document.getElementById("txtA"); 

      if (txtA.value == "King") 
      { 
       txtB.value = "Peter"; 
      } 
     } 
    </script> 

<input type="text" id="txtA" onblur="fillB()" /> 
<input type="text" id="txtB" /> 
0

的jQuery:

<script type="text/javascript"> 
    $(function() 
    { 

    $("#txtA").change(function() 
    { 
     if(this.value == "King") 
     $("#txtB").attr("disabled", "").val("Peter"); 
    }); 

    }); 
</script> 
0

看样子尽管你希望你的第二个文本框始终被禁用?如果是包括在textboxfor disabled属性:

<%: Html.TextBoxFor(x => x.XXX, new { id = "txtA" }) %>  
<%: Html.TextBoxFor(x => x.XXX, new { id = "txtB", disabled="true" }) %> 

对于JavaScript中,我假设你正在使用附带MVC jQuery的:(如果你不希望清除txtb如果该值文本框:从复选框中的删除,那么由于您使用ASP.NET,你为什么不使用.NET工具箱如ASP删除else语句)

$(function() 
{ 
    $("#txtA").change(function() 
    { 
     if ($("#txtA").val().length > 0) { 

      $("#txtB").val(function() 
      { 
       // Do something to populate #txtb ex: Peter 
       var myVar = "Peter"; 

       return myVar; 
      }); 
     } 
     else 
     { 
      $("#txtB").val(""); 
     } 
    }); 
}); 
1

。这也会更容易维护。

protected void TextBox1_TextChanged(object sender, EventArgs e) 
{ 
    if (TextBox1.Text == "King") 
    { 
     TextBox2.Text = "Peter"; 
    } 
} 
1

以下是我为验证输入“价格”货币值而编写的javascript函数。

<script language="javascript"> 
function validatePrice(textBoxId) { 
    var textVal = textBoxId.value; 
    var regex = /^(\$|)([1-9]\d{0,2}(\,\d{3})*|([1-9]\d*))(\.\d{2})?$/; 
    var passed = textVal.match(regex); 
    if (passed == null) { 
     alert("Enter price only. For example: 523.36 or $523.36"); 
     textBoxId.Value = ""; 
    } 
} 

如果你想火验证你失去了一个焦点从文本框后,再利用“的onblur”事件,这是因为OnLostFocus()在大多数的WinForm控件相同。

<asp:TextBox ID="TextBox19" runat="server" Visible="False" Width="183px" 
       onblur="javascript:return validatePrice(this);"></asp:TextBox> 
相关问题