|
|
|
ช่วยดู script search jquey หน่อยครับ เกี่ยวกับการเว้นวรรค |
|
|
|
|
|
|
|
จาก script ข้างต้น จะเป็นฟังก์ชันสำหรับการ search หาข้อมูล โดยเมื่อมีการกรอกข้อมูล เเล้ว ให้สามารถ search ได้ทันที เเต่ติดปัญหาตรงที่ เมื่อมีการ เว้นวรรค ข้อมูล เช่น Honda City จะไม่สามารถค้นหาได้ เเต่ถ้าพิมพ์ เฉพาะคำว่า honda อย่างเดียวสามารถค้นหาได้ จะไม่สามารถค้นหาได้ รบกวนช่วยเเก้ไขให้หน่อยครับ
Code (PHP)
(function ($) {
$.fn.extend({
search: function (callback, timeout) {
timeout = timeout || 1e3; // 1 second default timeout
var timeoutReference,
search = function (el) {
if (!timeoutReference)
return;
timeoutReference = null;
callback.call(el);
};
return this.each(function (i, el) {
var $el = $(el);
$el.is(':input') && $el.on('keyup keypress paste', function (e) {
if (e.type == 'keyup' && e.keyCode != 8)
return;
if (timeoutReference)
clearTimeout(timeoutReference);
timeoutReference = setTimeout(function () {
var valor = el.value.toLowerCase();
var gameNameTrim = valor.replace(/\s+/g, '');
var gameNameTrim2 = gameNameTrim.replace(/[^\w\s]/gi, '');
console.log(gameNameTrim2);
if (gameNameTrim2) {
$(".containerItems").children().fadeOut();
$(".containerItems [data-search*=" + gameNameTrim2 + "]").fadeIn('fast');
} else {
$(".containerItems").children().fadeIn();
}
search(el);
console.log(el);
}, timeout);
});
});
}
});
})
Tag : PHP, JavaScript, Ajax, jQuery
|
ประวัติการแก้ไข 2020-09-16 14:46:39
|
|
|
|
|
Date :
2020-09-16 14:43:43 |
By :
jirayu39 |
View :
578 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อย่างแรกเมธอด toLowerCase()
จะทำให้คำที่คีย์เข้าไปถูกแปลงเป็นตัวเล็ก
"Honda City" -> "honda city"
ต่อไปดู RegExp
https://www.w3schools.com/jsref/jsref_obj_regexp.asp
ในโค้ดมีไว้ 2 ที่
อันแรก ถ้า input "Honda City" จะได้ output เป็น "hondacity"
อันสอง ถ้า input เป็น "H onda City" จะได้ "ondcity"
พอใช้ร่วมกัน อันสองจึงไม่มีผล เพราะไม่ว่าจะใส่ "Honda City" หรือ "H onda City"
ก็จะได้ output เป็น "hondacity" (ใส่ console.log ไว้แล้ว ดูให้เป็นประโยชน์ครับ)
...เกิดจาก อันแรกเก็บ whitespace ไปหมดแล้ว
และเนื่องจาก "hondacity" ไม่มีในฐานข้อมูล มันก็เลยไม่แสดง
แก้โดย เพิ่ม "hondacity" ในฐานข้อมูล หรือเอา Regular expressions ออกทั้งสองตัว
|
ประวัติการแก้ไข 2020-09-16 16:38:05
|
|
|
|
Date :
2020-09-16 16:32:07 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|