2016-02-19 96 views
0

不工作,我想提醒文本框topValue的價值,但解決在()被調用時,一個文本框出現了,但沒有文字/價值/數量獲得價值在JavaScript

這裏是我的代碼:

var topValue = document.getElementById('topValue').value 

function solve() { 
    alert(topValue); 
} 
$('#solveButton').click(function() { 
    solve(); 
}); 

回答

6

該文本框的值首先從DOM中獲取。但是,當點擊按鈕時,會使用相同的緩存值。

這可以通過在函數中移動DOM中讀取值的語句來解決。

function solve() { 
    var topValue = document.getElementById('topValue').value 
    alert(topValue); 
} 

注意

$('#solveButton').click(function() { 
    solve(); 
}); 

也可以寫成

$('#solveButton').click(solve); 

但是,有一個更好的辦法。


我建議你使用jQuery從文本框中獲取值。

// When DOM is completely loaded 
$(document).ready(function() { 
    // On click of the `solveButton` 
    $('#solveButton').click(function() { 

     // Get the value of the `#topValue` 
     var topValue = $('#topValue').val(); 

     // For debugging use `console.log` instead of `alert` 
     console.log('topValue', topValue) 
    }); 
}); 
+0

正要說一下使用JQuery一樣。不妨使用它,如果它在那裏! – Ageonix

0
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script> 


$(document).ready(function() { 

    var topValue = document.getElementById('topValue').value; // have the initial value 

    function solve() { 
     alert(topValue); 
     alert(document.getElementById('topValue').value) // current value 
    } 

    $('#solveButton').click(function() { 
     solve(); 
    }); 

}); 
</script> 
</head> 

<body style="width:50%;"> 
<input type="text" id="topValue" value="ssss"/> 
    <input type="button" value="Solve" id="solveButton" /> 
</body> 

</html>