Inhalt eines input-Feldes in einen href kopieren

Mit dieser Funktion ist es möglich die Eingabe aus einem Input-Feld, per jQuery-onChangeMethode, als Link darzustellen. 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. Daraufhin muss jq eingebunden werden, auf das input-Feld die onChange-Methode gelegt werden und die Eingabe an den Link (ahref) übergeben werden. Zusätzlich wird in der Funktion überprüft ob bereits eine Eingabe getätigt wurde, die „http“ (oder auch „https“) enthält.

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){
atag.href = 'https://' + jq.trim(this.value);
atag.innerHTML = atag.href;
}
else{
atag.href = jq.trim(this.value);
atag.innerHTML = atag.href;
}
});
}