0

因为当涉及到 JS、JQuery 和 PHP 时,我在各个方面都是一个完整的 n00b,所以我需要一些帮助。

可能对于有 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 技能的人来说,可能需要不到一分钟的时间,但对我来说,这非常困难。:(

4

1 回答 1

2

该功能本身运行良好。这只是一个范围界定问题。你有两个选择:

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).attr("value")使用$(this).val().

于 2013-02-01T08:45:45.790 回答