0

有没有办法将文本附加到输入字段?

所以让我们说而不是:

<input type="text" id="val" name="val" value="http://" style="width: 140px;" />

http://已经写了“”,当http://有人输入地址时会自动添加一个“”,如果有人输入完整的url“ http://www.****.com”,则不应添加http,因此它不会加倍。

有人有什么想法吗?我不能使用php。

4

4 回答 4

0

附加:

document.getElementById('val').value += "http://www.google.co.uk";

删除重复项: `

document.getElementById('val').value.replace("http://http://","http://");

这样,如果他们确实键入http://了两次,它就会将其删除。

于 2012-05-16T13:04:38.413 回答
0

为什么不添加http://if 它丢失了?

var input = document.getElementById('val').value;

if (input.search('http://') === -1) {
    input = 'http://' + input;
}

编辑:如果您还需要允许 https,请将搜索更改为正则表达式:

if (input.search(/https?:\/\//) === -1) {

http://jsfiddle.net/jbabey/Bt67X/

于 2012-05-16T13:08:23.860 回答
0

我强烈建议使用脚本框架,例如 jQuery (http://jquery.com) 来访问输入字段。

见这里:http: //jsfiddle.net/5BLrU/

这是供参考的JS代码

$(function() {
    $("#some-form").submit(function(){
        var $val = $("#val");
        var url = $val.val();
        if (!/^http:\/\/.+/.test(url)) {
            $val.val("http://" + url);
        }
        // remove this to submit the form!
        return false;
    });
});
于 2012-05-16T13:09:06.283 回答
0

以下示例假定目标元素的 ID 为val

// Store current element
var elem = document.getElementById('val'),
    // Store current value
    currentValue = elem.value;

// Prepend something if not present
if (currentValue.match(/^http:\/\//) == false) {
    currentValue = 'http://' + currentValue;
}

// Re-assign
elem.value = currentValue;
于 2012-05-16T13:10:38.880 回答