| 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: 11 let
|
|||
0