[gelöst] jQuery, Bootstrap Probleme in der settings.php

Begonnen von AlternativeComputing, 14 Juli 2013, 14:05:58

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

AlternativeComputing

Moin Moin,  :morning:


Ich hab da ein kleines Problem mit der settings.php (admin.php?op=Configure), wenn ich via Theme bootstrap einsetze:



$("input[type=\'radio\']").each(function(){
var radiobuttonname = $(this).prop(\'name\');
$(this).wrap("<div class=\'switch radio-button-"+radiobuttonname+"\' data-on-label=\'<i class=\"icon-ok icon-white\"></i>\' data-off-label=\'<i class=\"icon-remove\"></i>\'></div>");
$(".radio-button-"+radiobuttonname+"").on(\'switch-change\', function () {
$(".radio-button-"+radiobuttonname+"").bootstrapSwitch(\'toggleRadioState\');
});
});



Es werden in der settings.php alle Javascripte unterbrochen.
Entferne ich jetzt diese Zeilen:



$(".radio-button-"+radiobuttonname+"").on(\'switch-change\', function () {
$(".radio-button-"+radiobuttonname+"").bootstrapSwitch(\'toggleRadioState\');
});



werden wieder alle Scripte ausgeführt. Was könnte die Ausführung verhindern?
MfG

Peter

AlternativeComputing

Ok habe das Problem eingrenzen können.

Diese Zeilen machen Probleme:



        echo '<td align="center"><input type="radio" value="1" name="htmlallow[' . htmlspecialchars($htmltag) . ']"' . $sel[1] . '/></td>';
        echo '<td align="center"><input type="radio" value="2" name="htmlallow[' . htmlspecialchars($htmltag) . ']"' . $sel[2] . '/></td>';
        echo '<td align="center"><input type="radio" value="0" name="htmlallow[' . htmlspecialchars($htmltag) . ']"' . $sel[0] . '/></td>';

MfG

Peter

maik3

Evtl. das:
echo '<td align="center"><input type="radio" value="1" name="htmlallow[' . htmlspecialchars($htmltag) . ']"' . $sel[1] . '/></td>';

AlternativeComputing

Nein den "/" haben ja alle Inputfelder.

Es wird ja mit var radiobuttonname = $(this).prop(\'name\');

die Namen der Radio Inputs ausgelesen und alle Felder ohne [] hinter dem Namen, werden ja korrekt umgewandelt.

Selbst bei diesen Code:



$(this).wrap("<div class=\'switch radio-button-"+radiobuttonname+"\' data-on-label=\'<i class=\"icon-ok icon-white\"></i>\' data-off-label=\'<i class=\"icon-remove\"></i>\'></div>");


(Dieser Code schreibt einen div Container um die Radioinputfelder mit den Klassen switch radio-button-"+radiobuttonname+", wobei das "+radiobuttonname+" den ausgelesenden Radionamen schreibt.)
Werden korrekt alle Schalter gesetzt, selbst wenn [] hinter dem Namen steht.

Nur wenn



$(".radio-button-"+radiobuttonname+"").on(\'switch-change\', function () {
$(".radio-button-"+radiobuttonname+"").bootstrapSwitch(\'toggleRadioState\');
});



ins Spiel kommt, werden die Radio Inputs ab HTML Optionen nicht korrekt in Schalter umgewandelt, auch die nachfolgenden nicht und die Scripte brechen dann ab.

Zum nachvollziehen, es wird dieses Script eingesetzt: https://github.com/BdMdesigN/bootstrap-switch-BdMdesigN
MfG

Peter

AlternativeComputing

Soooo ich hab den Übeltäter gefunden.

Das
'!--', im Array der Funktion settingsGetHTMLTags() blockt und bring die Scripte zum Absturz.
MfG

Peter

AlternativeComputing

Konnte das Problem mit diesen Code lösen:

if (radiobuttonname === \'htmlallow[!--]\') {var radiobuttonname = \'htmlallow[starttag-comment]\';};
MfG

Peter