Yêu cầu thg 6 4, 2020 4:05 SA 120 0 4
  • 120 0 4
0

Mirror hoàn toàn 1 thẻ input ?

Chia sẻ
  • 120 0 4

Có thể Tiêu đề hơi khó hiểu 1 chút ạ. Mình xin nói chi tiết hơn:

Liệu có cách nào để :

ta có 2 thẻ input #no1 và #no2 , khi nhập dữ liệu vào #no1 thì cũng truyền vào #no2 (cái này dễ rồi) , đồng thời các event xảy ra với #no1(click, keyup..) cũng được xảy ra với #no2 ( #no1.onKeyup(func1) #no2.onKeyup(func2) xảy ra cùng lúc)

😄

4 CÂU TRẢ LỜI


Đã trả lời thg 6 4, 2020 4:15 SA
0

bạn dùng jquery rồi .trigger() là đc

Chia sẻ
Avatar TAMIX @tuananhbfs
thg 6 8, 2020 6:18 SA

mình sẽ thử xem. thank you

Đã trả lời thg 6 4, 2020 4:42 SA
0
$element.clone(true, true);

nếu ko rõ cần event nào thì dùng cái này, replace lại dom là đc biết rõ thì dùng bind(). mà làm gì có chuyện xảy ra cùng lúc :v

Chia sẻ
Avatar TAMIX @tuananhbfs
thg 6 8, 2020 6:19 SA

mình ko chắc thứ mình muốn có làm dcko, nên đang đi tìm hiểu ạ.

Đã trả lời thg 6 4, 2020 8:18 SA
0

mình nghĩ là
<input id="no#1" onclick="handleClick()" />
<input id="no#2" onclick="handleClick()" />

<script> function handleClic() {} </script>
Chia sẻ
thg 6 5, 2020 3:12 SA

dù chung 1 function, nhưng bẹn click cái nào thì function cũng chỉ tác động đến cái đó thôi

còn nếu trong function, bạn bảo nó click luôn cái còn lại thì vô tình lại tạo ra loop vô hạn rồi

Avatar Nguyen Huy Cuong @cuong_nguyen
thg 6 5, 2020 3:56 SA

@hungpv mới khai báo thôi mà, đã làm gì đâu mà tác động với loop vô hạn đc hay thế bạn, bạn trên hỏi làm sao bắt event click ở 2 input chung 1 hàm thôi mà

thg 6 5, 2020 6:41 SA

@cuong_nguyen bạn đó muốn even ở #1 cũng xảy ra ở #2 mà, tức là khi #1 được click thì #2 cũng sẽ nhận được sự kiện tương tự

mà tôi cũng không chắc bạn đó hỏi thì khi event ở #2 có truyền trở lại #1 không nữa 😕

tôi hay dùng jquery, nên nó sẽ trông như vậy

$('#1').on('click', function() {
    $('#2').trigger('click');
});

theo ví dụ của bạn, thì nó không truyền event của #1 sang #2, dù chung 1 function, nhưng #1, #2 lại hoạt động hoàn toàn độc lập nhau

Avatar TAMIX @tuananhbfs
thg 6 8, 2020 6:09 SA

ý mình cần nó kích hoạt event của #2 chứ ko phải gọi thêm 1 function cùng lúc. giống như có 2 con chuột cùng click 1 lúc nào 2 nút vậy đó.

Đã trả lời thg 6 8, 2020 6:16 SA
0

Mình xin viết rõ hơn 1 chút nữa: #2 có sẵn sự kiện keyup(dosomething). Khi #1 keyup thì mình muốn #2 cũng xãy ra keyup để dosomething.

dosongthing có thể là bất kỳ gì(coi như mình ko bận tâm cái này), Mình chỉ muốn #2 thật sự xảy ra keyup

Chia sẻ
thg 7 28, 2020 10:24 SA
<input id="ele1" type="text" onkeyup="onkeyupElement1(event)">
<input id="ele2" type="text" onkeyup="onkeyupElement2(event)">
    <script charset="utf-8">
        let isTrigger = false
        const element1 = document.getElementById("ele1")
        const element2 = document.getElementById("ele2")
        function onkeyupElement1(event) {
            console.log("element1 keyup")
            if (!event) return
            const value = event.target.value
            element2.value = value
            if (!isTrigger) {
                element2.onkeyup()
                isTrigger = true
            } else {
                isTrigger = false
            }
        }
        function onkeyupElement2(event) {
            console.log("element2 keyup")
            if (!event) return
            const value = event.target.value
            element1.value = value
            if (!isTrigger) {
                element1.onkeyup()
                isTrigger = true
            } else {
                isTrigger = false
            }
        }

Không biết đúng ý bạn chưa?, Vấn đề xảy ra ở đây là lúc mình trigger thì lại không lấy được event, bạn có thể search thêm.

Avatar TAMIX @tuananhbfs
thg 7 29, 2020 3:45 SA
 element2.value = value
            if (!isTrigger) {
                element2.onkeyup()
                isTrigger = true
            }


ở đoạn này sẽ kích hoạt dc onkeyupElement2() nhưng ko có event
thg 7 29, 2020 4:43 SA

@tuananhbfs Mình có nói đến ở trên r, nhưng nó có thực sự cần thiết k?, bạn sẽ làm gì tiếp theo khi element còn lại đc trigger?

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí