1

(我希望我的标题是可以理解的,很难总结。)

我有一些脚本可以根据所选单选按钮更改表单内的一些文本,如您在此处看到的:http: //jsbin.com/onowu/

问题是,如果某个用户输入了一些文本,然后单击另一个单选按钮,它将删除他的文本。

我正在寻找的是一种仅在用户没有填写任何文本时才更改灰色文本的方法。如果用户删除他的文本,它将根据所选的单选按钮用文本填充空白。

你可以在这里看到我的代码:http: //jsbin.com/onowu/edit

4

1 回答 1

5

检查输入是否具有“提示”类。只需更改文本即可。

完整示例:

$(document).ready(function() {
    function setText(){
        var kf = this.title.split('|');
        if (kf.length < 0) return;
        if($('#' + this.name + '_text').hasClass('hint')){
            $('#' + this.name + '_text').val(kf[0]).addClass('hint');
        }
        $('#' + this.name + '_text').attr('title', kf[0]);
    }

    $("input[type='text']").inputdynvalue();
    $("input[type='radio']").click(setText);
});

这通过检查类“提示”的输入文本框并仅在找到它时更改值来工作。正如Jonathan Sampson在评论中提到的, “.focus() 事件删除了类“提示”,如果没有提供文本,.blur() 事件会再次添加它”。

我还将通过 W3C 提供的html 验证服务运行您的代码。如果您没有有效的代码,JavaScript 可能会很有趣。(加上每个人都应该写有效的html)

A 还注意到您在代码中包含了两次 jQuery,我建议您删除其中一个。


更新(2009 年 7 月 10 日):修复了以下评论中提到的错误。

于 2009-06-27T22:18:40.647 回答