Как вызвать событие после потери фокуса из только что заполненного текстового поля? - PullRequest
5 голосов
/ 15 июля 2010

У меня есть два текстовых поля: A и B, используя Html.textboxfor. TextBox 'A' включен, а TextBox 'B' отключен.

Когда я набираю значения в текстовом поле 'A' и изменяю фокус от текстового поля, текстовое поле 'B' должно заполняться некоторым значением.

Например: я ввожу значение TextBox A = "King"; если фокус исчез из поля, значение в текстовом поле B должно быть «Питер», которое должно быть заполнено автоматически.

Ответы [ 5 ]

2 голосов
/ 15 июля 2010

вы можете просто дать текстовому полю атрибут onblur и вызвать метод, который заполнит второе текстовое поле

что-то вроде:

   <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" />
1 голос
/ 05 ноября 2013

Ниже приведена функция 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>
1 голос
/ 17 августа 2010

Поскольку вы используете ASP.NET, почему бы вам не использовать .NET toolbox, например asp: textbox. Также будет легче поддерживать.

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    if (TextBox1.Text == "King")
    {
        TextBox2.Text = "Peter";
    }
}
0 голосов
/ 15 июля 2010

Похоже, вы хотите, чтобы ваше второе текстовое поле всегда было отключено?Если это так, включите в текстовое поле свойство disabled:

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

. Для JavaScript я предполагаю, что вы используете jquery, включенный в mvc: (Если вы не хотите очищать txtb, еслизначение удаляется из поля A, затем удаляется оператор 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("");
        }
    });
});
0 голосов
/ 15 июля 2010

JQuery:

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

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

  });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...