Inhalt eines input-Feldes in einen Link umwandeln

Mit dieser Funktion ist es möglich, die Eingabe aus einem Input-Feld in einen Link umzuwandeln. Hierfür muss in der Smartform die initMethode angegeben werden, welche in der custom.js aufgerufen wird.

<?xml version="1.0" encoding="utf-8"?>
<form name="SFname" initMethod="initChangeHref">
<table style="border:1px solid #aaaaaa;">
<tr>
<td>
<input type="text" name="input_pfad" class="input_pfad" id="input_pfad" />
</td>
</tr>
<tr>
<td>
<a href="" target="_blank" name="link" id="link" style="text-decoration:none;"></a>
</td>
</tr>
</table>
</form>

Nun muss in der custom.js diese initMethode angelegt werden. Darin muss jq eingebunden werden, die onChange-Methode auf das input-Feld gebunden werden und die Eingabe an den Link übergeben werden. Zusätzlich wird in der Funktion überprüft, ob die Eingabe bereits 'http:/ / ' oder 'https:/ /' enthält. Falls dies nicht zutrifft, wird dem Link „http:/ /“ vorangestellt.

gadget.functions.initChangeHref=function(){
jq= (this.form.ownerDocument.defaultView!=null) ? this.form.ownerDocument.defaultView.jQuery : this.form.ownerDocument.parentWindow.jQuery;
jq('#input_pfad').change(function(){
var atag= jq("#link")[0];
if(this.value.indexOf('http://')==-1 && this.value.indexOf('https://')==-1){
atag.href = 'http://' + jq.trim(this.value);
atag.innerHTML = atag.href;
}
else{
atag.href = jq.trim(this.value);
atag.innerHTML = atag.href;
}
});
}