2010-07-15 36 views
5
  1. Tôi có hai hộp văn bản A, B sử dụng (Html.textboxfor).
  2. Hộp văn bản 'A' được bật và Hộp văn bản 'B' bị tắt.
  3. Khi tôi nhập giá trị vào hộp văn bản 'A' và nhấp vào bên ngoài (di chuyển con trỏ ra khỏi hộp văn bản), TextBox 'B' phải được điền bằng somevalue.

Ví dụ: iam nhập giá trị của hộp văn bản A = "King", nếu tiêu điểm bị mất khỏi hộp, Giá trị trong hộp văn bản B phải là "Peter", sẽ được điền tự động.cách gọi sự kiện sau khi mất tiêu điểm từ hộp văn bản, asp.net mvc

Tôi sử dụng asp.net mvc.

+0

Tôi không chắc chắn về ASP, nhưng sự kiện bạn nên nghe là 'blur' – David

+1

Dường như có thể được giải quyết bằng jquery onBlur(), tuy nhiên sẽ có được bất kỳ logic bạn muốn áp dụng giữa hộp văn bản A và nội dung hiển thị trên hộp văn bản B? nếu nó tương quan với truy vấn dữ liệu, bạn có thể cần phải sử dụng cuộc gọi ajax ở bên cạnh sự kiện jquery blur của bạn –

Trả lời

3

bạn có thể jsut cung cấp cho các textbox một attrbiute của onblur và gọi một phương thức mà sẽ điền vào hộp văn bản thứ hai

cái gì đó như:

<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

Nó trông giống như mặc dù bạn muốn hộp văn bản thứ hai của mình luôn bị vô hiệu hóa? Nếu vậy bao gồm tài sản khuyết tật trong textboxfor:

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

Đối với JavaScript, tôi giả sử bạn đang sử dụng jquery được bao gồm với MVC: (Nếu bạn không muốn xóa txtb nếu giá trị là bị xóa khỏi hộp A, sau đó xóa tuyên bố khác)

$(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

Vì bạn đang sử dụng ASP.NET, tại sao bạn không sử dụng hộp công cụ .NET như asp: textbox. Nó sẽ dễ dàng hơn để duy trì.

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

Dưới đây là hàm javascript mà tôi đã viết để xác thực giá trị tiền tệ "Giá" đầu vào của tôi.

<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 = ""; 
    } 
} 

Nếu bạn muốn bắn xác nhận sau khi bạn mất tập trung từ hộp văn bản, sau đó sử dụng “onBlur” sự kiện đó là như giống như OnLostFocus() trong hầu hết các điều khiển WinForm.

<asp:TextBox ID="TextBox19" runat="server" Visible="False" Width="183px" 
       onblur="javascript:return validatePrice(this);"></asp:TextBox> 
Các vấn đề liên quan