由于我在 JS、JQuery 和 PHP 方面都是新手,因此我需要一些帮助。
对于有 JS 基础知识的人来说可能很简单,但对我来说就没那么简单了。
我的index.php中有以下部分:
<form method="get" id="searchform" action="http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=nl_NL&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk" target="_blank" >
<input type="text" value="" name="trackNums" id="ups" />
<input type="hidden" name="track.x" value="Traceren">
<input type="hidden" name="loc" value="nl_NL">
<input type="image" src="afbeeldingen/search_btn.png" id="searchsubmit" />
</form>
在 .js 文件中我有这个:
$(document).ready(function() {
$("#ups").attr("value", "UPS Trackingscode...");
var text = "UPS Trackingscode...";
$("#ups").focus(function() {
$(this).addClass("active");
if($(this).attr("value") == text) $(this).attr("value", "");
});
$("#ups").blur(function() {
$(this).removeClass("active");
if($(this).attr("value") == "") $(this).attr("value", text);
});
});
我在 .js 文件的顶部添加了这个:
function removeSpaces(string) {
return string.split(' ').join('');
}
但是当我将此部分添加到index.php(表单部分)时它不起作用:
<input type="text" onblur="this.value=removeSpaces(this.value);">
我想我也必须将它合并到当前的 JS 中,但我不知道如何执行此操作或更改/添加什么。
我在这里想要实现的是,每当我将跟踪代码粘贴到文本字段中时,它应该自动删除空格(如果有的话,因为复制/粘贴操作错误)。
它不适合任何特殊网站,只是供我个人使用,因此我可以从自己的起始页面更轻松地跟踪包裹。
我希望我的解释是正确的。对于有基本 JS 技能的人来说可能不到一分钟,但对我来说却非常困难。 :(
最佳答案
该功能本身运行良好。这只是一个范围问题。您有两个选择:
1) 将函数移到 $(document).ready(function() { })
部分之外
2) 从元素中删除 onblur="this.value=removeSpaces(this.value);"
,丢弃函数并编写相应的事件处理程序
// identifier or class needed to target the element, i use id="target"
$("#target").on("focusout",function(){
this.value = this.value.replace(/\s*/g,"");
});
第二种方式(使用事件处理程序)被认为是更干净、更好的方式。但两者都有效。
旁注:
要从字符串中删除空格,最好使用 replace使用相应的正则表达式 /\s*/g
的方法(替换整个字符串中的零个或多个空格 \s*
(全局 g
) )。
使用 $(this).val()
而不是 $(this).attr("value")
.
关于php - 将这段 Javascript 与另一部分结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14642313/