簡體   English   中英

使用jQuery模糊功能從輸入字段返回值

[英]Return value from input field with the jQuery blur function

目標:用戶關注輸入字段。 用戶在輸入字段中寫入一個值。 當用戶完成操作並且輸入字段不再是焦點時,將插入的值保存到名為“ inputFieldValue”的變量中。 這應該通過調用函數“ returnInputValue”來完成。

HTML

<!DOCTYPE html>
<html>
    <head>
        <title>My test</title>  
    </head>
    <body>

        <input class="input" />

        <script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript" src="test.js"></script>

    </body>
</html>

test.js

function returnInputValue() {

    var inputValue;

    $('.input').blur(function() {   

        inputValue = $('.input').val();

    });

    return inputValue;

}

var inputFieldValue = returnInputValue();

當我在插入值並再次聚焦之后從控制台調用變量inputFieldValue變量時,它仍然是“未定義”的。

我錯過了什么嗎?

您執行的函數是一個異步函數,即,它基於input觸發blur事件之后的時間。 您需要在blur事件中將其返回:

function returnInputValue() {
    var inputValue;
    $('.input').blur(function() {   
        inputValue = $('.input').val();
        return inputValue;
    });
}

正如某些人所建議的那樣,即使上面的代碼也不正確。 inputValue無效,因為它總是返回undefined

或者,將其設置為直接訪問上一個blur紅色值。

var inputValue = "Not Blurred Yet!";
$('.input').blur(function() {   
    inputValue = $('.input').val();
});

function returnInputValue() {
    return inputValue;
}

嘗試在函數外聲明變量

    <script>
       var inputValue;
        function returnInputValue() {

        $('.input').blur(function() {   

            inputValue = $('.input').val();

        });

        return inputValue;
   }
    var inputFieldValue = returnInputValue();
    </script>

這是當前的邏輯:

  1. 初始化具有undefined值的變量。
  2. 綁定在未定義的時刻執行的處理程序,該變量仍然是undefined
  3. 立即返回undefined

上述邏輯已損壞,應予以糾正。 最好的選擇是將最終邏輯移入blur處理程序:

 $('.input').blur(function() {   
    var inputValue = this.value;
    // do something with the value
    // ...
 });

如果需要在某個特定時刻獲取值,請查詢DOM,選擇元素並獲取其值。

您可以使用。

$(document).on("blur","#Yourinput",function(){
   var Myval = $("#Yourinput").val();
   // Execute your code here I.e call your function 
   // ...
// You do not even have to call you function put
// It in a div to display 
$("#yourdiv").html(Myval);
//Will display it in a div
//Or add to array
Yourarray.push(Myval);
});

這使用jQuery .on()方法。

此方法非常靈活。 如果您要插入數據庫,則可以使用jquery ajax在這里非常簡單地進行操作。

您必須處理事件,即用另一個事件替換模糊,但是如果您使用jquery,我相信這是最簡單的方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM