将文本附加到输入字段

时间:2012-05-16 12:54:44

标签: javascript

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

让我们说而不是:

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

已写入“http://”,当有人键入地址时自动添加“http://”,如果有人输入完整网址“http://www.****.com”,则不应添加http所以它不会翻倍。

任何人都有任何想法?我不能用php。

4 个答案:

答案 0 :(得分:0)

附加:

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

删除重复: `

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

这样,如果他们输入http://两次,就会删除它。

答案 1 :(得分:0)

为什么不添加http://,如果它丢失了?

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/

答案 2 :(得分: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;
    });
});

答案 3 :(得分: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;