Mit dieser Funktion ist es möglich, die Eingabe aus einem Input-Feld in einen Link umzuwandeln und diesen nachfolgenden T!M-Anwendern zur Verfügung zu stellen. 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 target="_blank" name="link" id="link" style="text-decoration:none;"/> </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 (ohne Leerzeichen zwischen den Schrägstrichen).
gadget.functions.initChangeHref=function(){ jq= (this.form.ownerDocument.defaultView!=null) ? this.form.ownerDocument.defaultView.jQuery : this.form.ownerDocument.parentWindow.jQuery; window['entity'] = this.entity; 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; window['entity'].setValue(atag.id, 'http://' + jq.trim(this.value)); } else{ atag.href = jq.trim(this.value); atag.innerHTML = atag.href; window['entity'].setValue(atag.id, jq.trim(this.value)); } window['entity'].setValue(this.id, this.value); window['entity'].mergeLocal(true); }); }