我想使用jQuery將我的一個輸入標記動態複製到另一個輸入標記。換句話說,當用戶在第一個輸入中輸入時,第二個輸入顯示用戶正在輸入什麼內容(只有當複選框被選中時)。從一個輸入動態生成值到另一個輸入
第二輸入應該只出現在第一輸入端輸入了什麼東西,並選中該複選框
鏈接到小提琴: https://plnkr.co/edit/GI8jWqh6PbMKO7HVhikP?p=preview
這是我到目前爲止有:
<body>
<input type="password" id="firstInput" />
<input type="hidden" id="secondInput" />
<br/>
<input type="checkbox" id='checkbox'/>
<script>
$('#checkbox').change(function(){
if ($(this).prop('checked')) {
$(secondInput).prop('type', 'text');
$(firstInput).on('input', function() {
$(secondInput).val($(firstInput).val());
});
} else {
$(secondInput).prop('type', 'hidden');
}
});
</script>
這方面的工作,howeve r,我面臨以下問題:
1.如果默認複選框爲「checked」,jQuery將不會看到更改事件,所以如果我開始鍵入,第二個輸入將不會顯示任何內容。
2.當我開始打字時,第二個輸入顯示出來。如果我刪除firstInput中的所有內容,secondInput將不會隱藏。
3.與第2個問題類似的問題。如果我將複選框checked屬性默認爲false,如果我將其更改爲checked,隱藏的輸入顯示出來,即使我沒有輸入任何內容。
4.如果我不勾選複選框,然後開始輸入內容,如果我將複選框更改爲選中狀態,第二個輸入將不會顯示我輸入的內容,因爲之後發生change()事件。
建議?
因此,如果用戶輸入第一個輸入,第二個輸入應該自動顯示?或者,第二個輸入應該只在第一個輸入中輸入內容時顯示*並且*框被選中了?你已經說明了你的'問題',但是你沒有清楚地解釋你想要創建的行爲。 –
@DavidThomas它應該是「第二個輸入應該只顯示,當輸入的東西在第一個輸入和框被檢查」。我會更新我的帖子。 – OPK