我正在開發一個項目,我需要一個隱藏的輸入字段來接受用戶輸入。隱藏輸入字段並仍然採取用戶輸入
我有JavaScript的地方總是專注於輸入字段。當div可見時,我可以看到打字。當我隱藏div類型並使div再次可見時,我沒有看到任何更改。我如何做到這一點,當div被隱藏時,它仍然需要用戶輸入?真的,如果除了藏身之外還有另一種方式,那會很棒。使用Jeffman的想法
<html>
<body>
<div id="diva">
<input name="geta" id="geta" type="text" onkeypress="javascript:geta.focus();" onKeyUp="javascript:geta.focus();" OnBlur="javascript:geta.focus();" OnChange="javascript:geta.focus();" />
</div>
<button onClick="javascript:change();">Show/Hide Div</button>
<script language="javascript" type="text/javascript">
<!--
function change() {
var div = document.getElementById('diva');
if (div.style.display !== 'none') {
div.style.display = 'none';
}
else {
div.style.display = 'block';
}
};
geta.focus();
// -->
</script>
</body>
</html>
固定副本:
<html>
<head>
<style>
input {
position: absolute;
left: -999em;
}
</style>
</head>
<body>
<input name="geta" id="geta" type="text" onkeypress="javascript:geta.focus();" onKeyUp="javascript:geta.focus();" OnBlur="javascript:geta.focus();" OnChange="javascript:geta.focus();" />
<button onClick="javascript:show();">Show</button><button onClick="javascript:hide();">Hide</button>
<script language="javascript" type="text/javascript">
<!--
function hide() {
document.getElementById('geta').style.position = 'absolute';
document.getElementById('geta').style.left = '-999em';
}
function show() {
document.getElementById('geta').style.position = 'absolute';
document.getElementById('geta').style.left = '10em';
}
geta.focus();
// -->
</script>
</body>
</html>
也許我錯過了什麼,但不清楚你想達到什麼目的。而不是告訴我們你已經實現了什麼,告訴我們你試圖達到什麼目的,因爲我猜測你是以錯誤的方式去做 –
嘗試對輸入進行定位,使其位於其他東西的後面,比如圖像或其他東西。或者嘗試使用負座標進行定位,使其不在視口中。 – 2013-08-07 15:43:28
謝謝傑夫曼。你的想法並不困難。我發佈了一份固定副本供其他人試用,如果他們想看的話。 –