2016-04-28 6 views
5

पूर्व कहानी: मैं इनपुट क्षेत्र में अपने website.If उपयोगकर्ता प्रारंभ टाइपिंग पर खोज करने के लिए परिणाम शुरू कर देंगे Algolia खोज का उपयोग कर रहा स्क्रीन पर दिख रहा है।एक बटन पर क्लिक करें आग कैसे करता है, तो किसी इनपुट बॉक्स में उपयोगकर्ता प्रकार

अंतिम लक्ष्य: डिफ़ॉल्ट रूप से फ़िल्टर (टॉगल कार्यक्षमता) को बंद करें।

मुद्दे: जब उपयोगकर्ता इनपुट में टाइपिंग शुरू करते हैं तो यूआरएल परिवर्तन और फ़िल्टर खुले रहते हैं।

  • यदि उपयोगकर्ता टाइपिंग के साथ खत्म होने के बाद कंसोल में कोड लागू करता है तो मैं बटन को बंद कर सकता हूं।
  • यदि मैं jQuery कोड को लागू करता हूं और जब मैं फ़िल्टर टाइप कर रहा हूं, तो बंद रहें, लेकिन फिर एक बार जब उपयोगकर्ता फिर से फ़िल्टर को बंद कर देता है।
  • एक बार जब मैं टाइपिंग के साथ समाप्त करता हूं (इनपुट फोकस करता है) तो फ़िल्टर फिर से खुलते हैं।

मेरे दृष्टिकोण:

  • पहले

    $("input#dropdown_search").on('input',function(e){ 
        $("b- utton.button.filters__button").click();  
    }); 
    
  • दूसरा

    $('input#dropdown_search').keyup(function() { 
        $("button.button.filters__button").click(); 
    }); 
    
  • तीसरा

    $('input#dropdown_search').on('inputchange', function() { 
        $("button.button.filters__button").click(); 
    }); 
    
  • चौथा

    $("input#dropdown_search").on('change keyup paste', function() { 
        ApplyFilter(); 
    }); 
    
    function ApplyFilter() { 
        $("button.button.filters__button").click(); 
    } 
    

    ऐसा लगता है कि वे अंतिम लक्ष्य है, जहां वे फिल्टर छिपा उपयोगकर्ता के टाइपिंग बंद करने के बाद भी रख समाप्त न हो।

क्या आप कृपया मदद कर सकते हैं?

+0

आप अपने कोड में से कुछ रख सकते हैं बदलने के लिए ? –

+0

'.click(); 'केवल' .click 'के साथ जोड़े गए अन्य ईवेंट श्रोताओं को ट्रिगर करता है, यह सुरक्षा कारणों से मूल बटन प्रेस अनुकरण नहीं करेगा (आप उपयोगकर्ता को जानने के बिना फ़ॉर्म सबमिट कर सकते हैं)। –

+0

@ सर्गीउ पैरास्चिव क्लिक इवेंट ठीक काम करता है क्योंकि यह "बटन.बटन.फिल्टरर्सबूटन" को लक्षित कर रहा है, जिस समस्या का मैं सामना करता हूं वह यह है कि जब मैं इसे छिपाता हूं, लेकिन एक बार जब मैं इसे रोकता हूं तो फिर से दिखाता है। अगर मैं कहीं और क्लिक करता हूं तो क्लिक फ़ंक्शन को फिर से ट्रिगर किया जाता है – John

उत्तर

0

इस प्रयास करें:

var timer; 
$("input#dropdown_search").on('change keyup', function() { 
    clearInterval(timer); 
    timer = setInterval(function() { 
     ApplyFilter(); 
    }, 1500); 
}); 
0

आप trigger उपयोग कर सकते हैं गति प्रदान करने के click

$("#dropdown_search").on('change keyup paste',function(event){ 
$(".buttonclass").trigger('click'); //trigger .buttonclass button on trigger of events 
}) 
$(".buttonclass").on('click',function(event){ 
alert("I am clicked") 
}) 
0 पहला इनपुट में

Example jsFiddle

0

प्रकार, आग समारोह बटन पर क्लिक करें होगा कि तुरंत तो दूसरी इनपुट मूल्य


 
    
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
</head> 
 
<body> 
 

 
<input type=text id=dropdown_search> 
 
    <input type=text id=dropdown_search2> 
 

 
    <button id=target onclick="be()"> 
 

 
<script> 
 
    
 
    onload = function() { 
 

 
     var t = document.getElementById('dropdown_search'); 
 
     t.oninput = function(){ 
 
     
 
     document.getElementById("target").click(); 
 
      
 
     }; 
 
     t.onpropertychange = t.oninput; // for IE8 
 
     t.onchange = t.oninput; 
 

 
     }; 
 

 
function be() { 
 
var t = document.getElementById('dropdown_search').value; 
 
document.getElementById('dropdown_search2').value=t;} 
 
    </script> 
 
    
 
    </body></html>

संबंधित मुद्दे

 संबंधित मुद्दे