Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
tulema
HV kasutaja
liitunud: 23.04.2003
|
21.04.2010 21:32:50
checkbox checked |
|
|
Näide: http://www.
Olen jõudnud sellisesse punkti, kus enam edasi teha ei oska, sest "onClick" tuli mitu erinevat funktsiooni sisse.
1. Ühesõnaga ma tahan sellist tulemust, kus Hingamisruum 1 ja 2 täidab "Hingamisruum_töötav" funktsiooni.
2. Textarea väljal läheb tekst üksteise alla mitte ei jookse teisele otsa:
Hingamisruum1
Hingamisruum2
3. Abi
<head>
<script type="text/javascript">
function attachMe(text) {
var elm = document.getElementById('content');
var re = new RegExp(text, 'gi');
if (elm.innerHTML.match(re)) {
elm.innerHTML = elm.innerHTML.replace(re, '');
}
else {
elm.innerHTML += text;
}
}
function color1(){
document.getElementById("div_ID").style.cssText="color:#FF0000;";
}
function color2(){
document.getElementById("div_ID").style.cssText="color:#000;";
}
function BG (it, box) {
var vis = (box.checked) ? color1() : color2();
return vis;
}
</script>
</head>
<body>
<input name="" type="checkbox" value=""><a href="#" onclick="attachMe('Hingamisruum1');">Hingamisruum 1</a> <br />
<input name="" type="checkbox" value=""><a href="#" onclick="attachMe('Hingamisruum2');">Hingamisruum 2</a><br />
<textarea name="content" cols="50" id="content"></textarea>
<table width="400">
<tr>
<td id="div_ID">
<label for="cbox"><input name="cbox>" id="cbox" type="checkbox" onClick="BG('DIV_id', this);" value="" />Hingamisruum_töötav</label></form>
</td>
</tr>
</table>
</body>
</html> |
viimati muutis tulema 29.04.2010 16:36:50, muudetud 1 kord |
|
Kommentaarid: 58 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
52 |
|
tagasi üles |
|
|
czcc
HV vaatleja
liitunud: 22.04.2005
|
22.04.2010 09:40:29
|
|
|
Teise probleemi lahendus:
function attachMe(text) {
var elm = document.getElementById('content');
var re = new RegExp(text+"\n", 'gi');
if (elm.innerHTML.match(re)) {
elm.innerHTML = elm.innerHTML.replace(re, '');
}
else {
elm.innerHTML += text+"\n";
}
} |
Esimesest ei saa aru, mida see täpselt tegema peab?
|
|
Kommentaarid: 18 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
16 |
|
tagasi üles |
|
|
andrusny
Kreisi kasutaja
liitunud: 20.03.2006
|
22.04.2010 12:52:22
|
|
|
textArea sisu peaks olema value, innerHTML on ikkagi rohkem kogu html koodi jaoks. Kustutamiseks on see hea, kuna tõmbab automaatselt ka reavahetused maha.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function attachMe(text) {
var elm = document.getElementById('content');
var re = new RegExp(text, 'gi');
if (elm.innerHTML.match(re)) {
elm.innerHTML = elm.innerHTML.replace(re, '');
if(elm.value){elm.value+="\n";}
}
else {
elm.value+= text+"\n";
}
}
function color1(){
document.getElementById("div_ID").style.cssText="color:#FF0000;";
}
function color2(){
document.getElementById("div_ID").style.cssText="color:#000;";
}
function BG (it, box) {
var vis = (box.checked) ? color1() : color2();
return vis;
}
// chb margistamine / tyhistamine
function tseki(id, nm){
vorm = id.elements;
for(i=0;i<vorm.length;i++){
kontrol = 0;
if(vorm[i].type == "checkbox" && vorm[i].name === nm){
if(vorm[i].checked==true){
vorm[i].checked = false;kontrol =1;
}
if(vorm[i].checked==false && kontrol==0){
vorm[i].checked = true;
}
}
}
}
</script>
</head>
<body>
<form id="f1">
<input name="e" type="checkbox" value="" ><a href="#" onclick="attachMe('Hingamisruum1');tseki(this.parentNode, 'e');">Hingamisruum 1</a><br />
<input name="e2" type="checkbox" value=""><a href="#" onclick="attachMe('Hingamisruum2');tseki(this.parentNode, 'e2');">Hingamisruum 2</a><br />
<textarea name="content" cols="50" id="content"></textarea>
<table width="400">
<tr>
<td id="div_ID">
<label for="cbox"><input name="cbox>" id="cbox" type="checkbox" onClick="BG('DIV_id', this);" value="" />Hingamisruum_töötav</label></form>
</td>
</tr>
</table>
</form>
</body>
</html> |
_________________
|
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
|
nene
Kreisi kasutaja
liitunud: 20.03.2004
|
22.04.2010 16:04:37
Re: checkbox checked |
|
|
tulema kirjutas: |
1. Ühesõnaga ma tahan sellist tulemust, kus Hingamisruum 1 ja 2 täidab "Hingamisruum_töötav" funktsiooni. |
Nagu czcc, ei saa minagi sellest lausest aru.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
|
andrusny
Kreisi kasutaja
liitunud: 20.03.2006
|
22.04.2010 17:04:03
|
|
|
Jut siis checked function tegemisest. Seletus on jah poolik, kui kood käima panna, siis alles saab aru.
_________________
|
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
|
tulema
HV kasutaja
liitunud: 23.04.2003
|
22.04.2010 19:37:11
|
|
|
Vabandan väga pooliku teema eest – teema kirjutamise ajal läks kiireks ja nii läkski nö. poolik teema teele.
Mis puutub esimest punkti, siis küsimuse põhimõte on järgmine, mille toon näite põhjal esile.
Toome näite.
Kui me klikime Hingamisruum 1, siis peab minema linnuke kasti ja Hingamisruum 1 muutub punaseks värviks. Teisel korral klikates Hingamisruum 1, siis kaob linnuke kastist ära ja punane värv muutub mustaks.
Kui minna näitelehele ja klikata Hingamisruum_töötav, siis saab põhimõttest aru, kuidas peab töötama Hingamisruum 1 ja Hingamisruum 2.
andrusny kood töötab ilusti, kus klikates läheb linnuke kasti aga ei muuda värvi.
Näide: http://www.hot.ee/
czcc: Tänan sind teise punkti täitmise eest.
Loodetavasti on nüüd natukene selgem ülevaade küsimusest.
viimati muutis tulema 05.06.2012 17:33:57, muudetud 1 kord |
|
Kommentaarid: 58 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
52 |
|
tagasi üles |
|
|
andrusny
Kreisi kasutaja
liitunud: 20.03.2006
|
22.04.2010 19:48:08
|
|
|
Tegin functioni pisikese paranduse. onclick sees on siis ka teisiti.
onclick="attachMe('Hingamisruum1');tseki(this, 'e');" |
// chb margistamine / tyhistamine
function tseki(id, nm){
vorm = id.parentNode.elements;
for(i=0;i<vorm.length;i++){
kontrol = 0;
if(vorm[i].type == "checkbox" && vorm[i].name === nm){
if(vorm[i].checked==true){
id.style.color = '#000';
vorm[i].checked = false;kontrol =1;
}
if(vorm[i].checked==false && kontrol==0){
id.style.color = '#FF0000';
vorm[i].checked = true;
}
}
}
} |
_________________
|
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
|
mikk36
HV Guru
liitunud: 21.02.2004
|
22.04.2010 20:41:30
|
|
|
andrusny, trepi inimlikult, see praegune stiil on sama hea kui treppimata kood.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
|
tulema
HV kasutaja
liitunud: 23.04.2003
|
22.04.2010 21:35:51
|
|
|
Tulemus hakkab juba ilmet võtma aga siiski on üks viga veel sees. Nimelt selline varinat peab ka olema, kui panna linnuke kasti, siis muudab värvi ja samas lisab info textarea väljale.
4. Järgmine ja ühtlaselt viimane küsimus selle teema kohta. Kuidas või kas selline võimalus on üldse teostav, et kogu info, mis on textarea väljal salvestada .txt failiformaati - allalaetav fail?
Näide: http://www.hot.ee/
Kogu selle protsessi kohta läks algus kenasti aga lõpp läks viltu, kui omavahel hakata neid siduma.
viimati muutis tulema 05.06.2012 17:34:12, muudetud 1 kord |
|
Kommentaarid: 58 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
52 |
|
tagasi üles |
|
|
nene
Kreisi kasutaja
liitunud: 20.03.2004
|
22.04.2010 23:03:47
|
|
|
Lingi klikkimise peale JavaScriptiga checkboxi märkimine on HTML-is juba olemasoleva funktsionaalsuse uuesti leiutamine. Kasuta <label> elementi. Näiteks nõnda:
html:
|
<li><label for="cb1"><input id="cb1" type="checkbox" value="Hingamisruum1"> Checkbox 1 </label></li> <li><label for="cb2"><input id="cb2" type="checkbox" value="Hingamisruum2"> Checkbox 2 </label></li> <li><label for="cb3"><input id="cb3" type="checkbox" value="Hingamisruum3"> Checkbox 3 </label></li> </ul> <textarea name="content" cols="50" rows="5" id="content"></textarea> </form> </body>
|
Nüüd saab checkboxi kõrval olevale tekstile klikkides checkboxi lülitada. Ja seda ilme igasuguse JavaScriptita. for="" atribuut määrab ära milline label millise checkboxiga seotud on. Uuematele brauseritele piisab kui checkbox on lihtsalt labeli sees, aga vanemad IE-d ei saa aru.
Esitasin selle checkboxide loendi... millena siis veel kui... loendina. Kui sulle need mummud seal ees ei meeldi, siis kasuta CSS-i, et seda kõike oma maitse järgi kujundada. Ka labelid võid CSS-i abil panna välja nägema nagu lingid.
Seejärel paneme lehe laadimisel igale checkboxile külge onchange puhul käivitatava funktsiooni:
javascript:
|
// käivitub lehe laadimisel function init() { var checkboxes = document.getElementById("checkboxes").getElementsByTagName("input"); for (var i=0; i<checkboxes.length; i++) { checkboxes[i].onchange = function() { // muudame checkboxi parent elemendi (label) värvi this.parentNode.style.color = this.checked ? 'red' : 'black'; // lisame/eemaldame textareasse checkboxi enda väärtuse addRemoveText(this.value); }; } } function addRemoveText(text) { var contentArea = document.getElementById('content'); var content = contentArea.value; // natuke peenem regulaaravaldis tuvastamaks kõikvõimalikke reavahetusi, // sest ehkki JavaScripti poolt lisatakse \n, teisendab brauser // selle tavaliselt \r\n reavahetuseks. var re = new RegExp(text+"(\r\n|\r|\n)", 'gi'); if (content.match(re)) { contentArea.value = content.replace(re, ''); } else { contentArea.value += text+"\n"; } }
|
tsitaat: |
Kuidas või kas selline võimalus on üldse teostav, et kogu info, mis on textarea väljal salvestada .txt failiformaati - allalaetav fail? |
Kahjuks siinkohal puhtalt JavaScriptist ei piisa. (Kui sind muidugi huvitab lahendus, mis IE puhul samuti töötab.)
Mu meelest parim meetod selleks oleks selle textarea sisu postitada mingile serveri skriptile, mis siis tollesama teksti koos Content-Type: text/plain päisega tagasi saadab.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
|
tulema
HV kasutaja
liitunud: 23.04.2003
|
25.04.2010 21:18:32
|
|
|
nene: Tänan sisuka ja õpetliku vastuse eest.
Leidsin lahenduse neljandale küsimusele, kuidas textarea väljalt saada info kätte ja teha allalaetavaks .txt failiks. Lahendi töölesaamiseks kulus keskmiselt 3h peale nene postitust, kus tõi võimaluse välja: Content-Type: text/plain.
<?php
if(isSet($_REQUEST["content"])){
header("Content-disposition: attachment; filename=andmed.txt");
echo $_REQUEST["content"];
exit();
}
?>
|
Huvi pärast proovisin erinevaid faililaiendeid, kas töötab või mitte -.txt, .doc ja .rtf - kõik töötavad. Saatuslikuks sai .reg fail, kus firefox topib oma .htm laiendi taha ehk andmed.reg.htm, samas IE's töötab.
Näide ka: Link eemaldatud.
Kas on võimalik ka firefoxis see tööle saada, et allalaetav fail on .reg laiendiga?
Edit:
Sain tööle, lisades rea juurde: header("Content-Type: application/force-download; filename=$andmed.reg");
|
|
Kommentaarid: 58 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
52 |
|
tagasi üles |
|
|
|