Autor | Zpráva | ||
---|---|---|---|
jav Profil * |
#1 · Zasláno: 10. 2. 2015, 15:08:20
zdravím,
mám HTML výstup a chci, aby uživatel do inputu mohl napsat libovolný text. Ten libovolný text by se automaticky vypsal všude tam, kde v kódu bude #kod# tzn. mám: <a href="?subject=%kod%">A1</a> - kategorie - <a href="?c=1&subject=%kod%">A1</a> a potom <input type="text" name="editace" value="" onkeyup="..."> a teď bych potřeboval, aby to, co bude ve value inputu se automaticky přepisovalo do Všech řetězců ve výsledném HTML kódu, který splnuje regexp subject=..." díky, vůbec to nedokážu takto zkombinovat. |
||
lionel messi Profil |
jav:
Bude potrebné použiť regulárne výrazy. Zhruba takto: text.replace(pattern, '$1' + jmenoFormulare.jmenoPole.value); Kde jmenoFormulare je názov formulára (obsah atribútu jemu príslušnému atribútu name ) a jemnoPole je názov políčka uvedený taktiež v zodpovedajúcom atribúte name .
Zrejme ešte lepšie by to bolo takto: <script> function f() { var vzor = /(subject=)[^"]/; var znacky = document.getElementsByTagName("a"); for (var i = 0; i < znacky.length; i++) { znacky[i].href = znacky[i].href.replace(vzor, '$1' + this.value); } } </script> <a href="?subject=%kod%" id="odkaz">A1</a> - kategorie - <a href="?c=1&subject=%kod%">A1</a> <form> <input type="text" name="editace" value="" onkeyup="f()"> </form> Správna syntax viď Chamurappiho reakciu, upravené. |
||
Chamurappi Profil |
#3 · Zasláno: 10. 2. 2015, 16:58:51
Reaguji na lionela messiho:
Regulární výrazy jsou přímou součástí syntaxe JavaScriptu, píší se mezi / lomítka/ , ne jako řetězce.
|
||
lionel messi Profil |
Chamurappi:
Ďakujem veľmi pekne za opravu, prikladám správne riešenie: <script> function f() { var vzor = /(subject=)[^"]*/; var znacky = document.getElementsByTagName("a"); for (var i = 0; i < znacky.length; i++) { znacky[i].href = znacky[i].href.replace(vzor, '$1' + formular.editace.value); } } </script> <a href="?subject=%kod%" id="odkaz">A1</a> - kategorie - <a href="?c=1&subject=%kod%">A1</a> <form name="formular"> <input type="text" name="editace" value="" onkeyup="f()"> </form> Kód v [#2] po syntaktickej úprave začal vyhadzovať undefined (priznávam, že netuším prečo) a v regulári mi chýbala hviezdička.
|
||
1Pupik1989 Profil |
#5 · Zasláno: 10. 2. 2015, 18:48:06
lionel messi:
„Kód v [#2] po syntaktickej úprave začal vyhadzovať undefined (priznávam, že netuším prečo) a v regulári mi chýbala hviezdička.“ Protože v this není input , nýbrž objekt Window .
Při takovém regulárním výrazu by navíc nesmélo nic následovat za "subject". function f(input){ var pattern = /subject=[^&]+/; var links = document.getElementsByTagName("a"); for (var a, i = 0, length = links.length; i < length; i++){ link = links[i]; link.href = link.href.replace(pattern, 'subject=' + input.value); } }; |
||
jav Profil * |
#6 · Zasláno: 12. 2. 2015, 10:19:44
díky pánové!
|
||
Časová prodleva: 10 let
|
0