有没有办法将文字附加到输入字段?
让我们说而不是:
<input type="text" id="val" name="val" value="http://" style="width: 140px;" />
已写入“http://
”,当有人键入地址时自动添加“http://
”,如果有人输入完整网址“http://www.****.com
”,则不应添加http所以它不会翻倍。
任何人都有任何想法?我不能用php。
答案 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) {
答案 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;