有没有办法将文本附加到输入字段?
所以让我们说而不是:
<input type="text" id="val" name="val" value="http://" style="width: 140px;" />
http://
已经写了“”,当http://
有人输入地址时会自动添加一个“”,如果有人输入完整的url“ http://www.****.com
”,则不应添加http,因此它不会加倍。
有人有什么想法吗?我不能使用php。
有没有办法将文本附加到输入字段?
所以让我们说而不是:
<input type="text" id="val" name="val" value="http://" style="width: 140px;" />
http://
已经写了“”,当http://
有人输入地址时会自动添加一个“”,如果有人输入完整的url“ http://www.****.com
”,则不应添加http,因此它不会加倍。
有人有什么想法吗?我不能使用php。
附加:
document.getElementById('val').value += "http://www.google.co.uk";
删除重复项: `
document.getElementById('val').value.replace("http://http://","http://");
这样,如果他们确实键入http://
了两次,它就会将其删除。
为什么不添加http://
if 它丢失了?
var input = document.getElementById('val').value;
if (input.search('http://') === -1) {
input = 'http://' + input;
}
编辑:如果您还需要允许 https,请将搜索更改为正则表达式:
if (input.search(/https?:\/\//) === -1) {
我强烈建议使用脚本框架,例如 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;
});
});
以下示例假定目标元素的 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;