Oma kysymykseni:
Miten voi muuttaa tekstin oletusväriä. (Ei Body-tagin avulla.)
Tarkoitin javascriptillä.
Tarkoitin javascriptillä.
Code: Select all
* { color: #ff0000; }
Code: Select all
document.getElementById("teksti").style.color = "red";
Code: Select all
function paneloi(poisko) {
if (poisko=='joo') {
document.getElementById('source').style.visibility='hidden';
document.getElementById('nappi').innerHTML="Lähdekoodi";
document.getElementById('nappi').onClick="paneloi()";
}
else {
document.getElementById('source').style.visibility='visible';
document.getElementById('nappi').innerHTML="Lähdekoodi pois";
document.getElementById("nappi").onClick="paneloi('joo')";
}
}
Sainkin askarrella tämän kanssa hetken. Näyttäisi siltä, ettei onclick:iä voi vaihtaa javascriptillä. Sen sijaan voisit toteuttaa nappulan käyttämällä linkkiä ja siinä href-kohdalla javascript:<tapahtuma> tyylistä linkitystä Ettei menisi ihan liian sekavaksi niin tässäpä esimerkit:Sir Walrus wrote:Niin, eli minulla on koodi jonka pitäisi vaihtaa eräs laatikko näkyväksi ja näkymättömäksi yhdellä napilla. Voi ko sen tehdä näin yhdellä funktiolla, tuo koodi kun ei toimi:Code: Select all
...koodi...
Jos taas välttämättä haluat käyttää muuta kuin linkkiä nappulana, niin silloin sinun täytyy tehdä kaksi erillistä nappulaa, joista toinen on aina piilotettuna. Tähän tapaan:
http://vesq.jouluserver.com/examples/js ... bility.htm
Code: Select all
function tag_ins(fieldId, tag)
{
field=document.getElementById(fieldId);
field.focus();
if (field.selectionStart > 0)
{
var f = field.value.substring(0, field.selectionStart);
}
else
{
var f = "";
}
if (field.selectionStart < field.selectionEnd)
{
var text = field.value.substring(field.selectionStart, field.selectionEnd);
}
else
{
var text = "";
}
if (field.selectionEnd < field.value.length)
{
var l = field.value.substring(field.selectionEnd, field.value.length-1);
}
else
{
var l = "";
}
var last = field.selectionEnd;
field.value = f + "["+tag+"]"+text+"[/"+tag+"]"+l;
}
Code: Select all
input.focus();
input.setSelectionRange(selectionStart, selectionEnd);
Code: Select all
var httpPyynto;
function luoXMLHttpRequest() {
if (window.ActiveXObject)
{
httpPyynto= new ActiveXObject("Microsoft.XMLHttp");
}
else if (window.XMLHttpRequest)
{
httpPyynto= new XMLHttpRequest();
}
}
function aloitaPostPyynto() {
luoXMLHttpRequest();
httpPyynto.onreadystatechange = kasitteleTilanMuutos;
var url="[url]";
httpPyynto.open("GET",url,true);
httpPyynto.send(null);
}
function kasitteleTilanMuutos() {
if (httpPyynto.readyState == 4)
{
//testaus:
alert(httpPyynto.status); //0
haeSolmut(httpPyynto.responseText);
}
}
function haeSolmut(dok)
{
//testi tuokin
document.write(dok);
}
aloitaPostPyynto();
Code: Select all
function notEmpty(elem,helperMsg) {
if (elem.value.length == 0) {
alert(helperMsg);
elem.focus();
return false;
}
return true;
}
function isAlphanumeric(elem,helperMsg) {
var alphaExp = /^[a-zA-Z0-9]+$/;
if (elem.value.match(alphaExp)) {
return true;
} else {
alert(helperMsg);
elem.focus();
return false;
}
}
function doesMatch(elem1,elem2,helperMsg) {
if (elem1.value == elem2.value) {
return true;
} else {
alert(helperMsg);
elem2.focus();
return false;
}
}
function checkLength(elem,min,max) {
var uInput = elem.value;
if (uInput.length >= min && uInput.length <= max {
return true;
} else {
alert("Nimimerkin pituus tulee olla " + min + "-" + max + " merkkiä.");
elem.focus();
return false;
}
}
function emailValidator(elem,helperMsg) {
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9+.\-]+\.[a-zA-Z0-9]{2,4}$/;
if (elem.value.match(emailExp)) {
return true;
} else {
alert(helperMsg);
elem.focus();
return false;
}
}
function validateForm() {
var nick = document.getElementById('nick');
var pass = document.getElementById('password');
var rePass = document.getElementById('rePassword');
var email = document.getElementById('email');
if (!notEmpty(nick,"Anna nimimerkki!")) {
return false;
}
if (!checkLength(nick,3,15)) {
return false;
}
if (!isAlphanumeric(nick,"Nimimerkki saa sisältää vain kiraimia ja numeroita!")) {
return false;
}
if (!notEmpty(pass,"Anna salasana!")) {
return false;
}
if (!doesMatch(pass,rePass,"Salasanat eivät täsmää!")) {
return false;
}
if (!emailValidator(email,"Anna kelvollinen sähköpostiosoite!")) {
return false;
}
return true;
}
function checkLogin() {
var nick = document.getElementById('nick');
var pass = document.getElementById('password');
if (!notEmpty(nick,"Anna nimerkki.")) {
return false;
}
if (!notEmpty(pass,"Anna salasana.")) {
return false;
}
return true;
}
Code: Select all
<h1>Rekisteröidy</h1>
<form action='inc/processRegister.php' method='post' onsubmit='return validateForm()'>
Nimimerkki: (3-15 merkkiä)<br />
<input type='text' name='nick' id='nick' onchange='return validateForm()' /><br />
Salasana:<br />
<input type='password' name='password' id='password' /><br />
Salasana uudelleen:<br />
<input type='password' name='rePassword' id='rePassword' /><br />
Sähköposti:<br />
<input type='text' name='email' id='email' /><br />
<input type='submit' value='Rekisteröidy' />
</form>
IMO, kannattaa käyttää tarkistukseen mieluummin PHP:tä, mitä jos vaikka JavaScript on kytketty pois päältä?Sly_Jack0 wrote:
Eiköhän tuo sama tehdä jo PHP:lläkin. Yleensä vain on tapana käyttää JavaScriptiä lomakkeiden validointiin jo ennen kuin se lähetetään palvelimelle. Huomattavasti helpompaa käyttäjälle, kun ei tarvitse mennä eri sivulle vain nähdäkseen että jokin pakollinen tieto puuttuikin tms.DJ-Filbe wrote: IMO, kannattaa käyttää tarkistukseen mieluummin PHP:tä, mitä jos vaikka JavaScript on kytketty pois päältä?
Opiskele hieman PHP :n perusteita ja tee tuo sama php:lla, silloin tuon toimivuus ei ole ainakaan selaimestasi kiinni.
En halua lähteä testailemaan koodiasi, koska eri selaimet hyväksyvät erilaisia HTML-elementtien määritteitä.
Tiedän esimerkiksi, että tuo ei tulisi toimimaan PSP :lläni, koska sen selain ei tue HTML-elementtien täydellistä JS-käsittelyä.
PHP sitävastoin toimii kaikkialla (php-tuetuissa palvelimissa oc).
Ja kyseisellä kielellä säästät myös rutkasti koodirivejä ja parannat sivujesi tietoturvaa, joskin tiedon lähetyksen lataus vienee muutaman millisekunnin pidempään.
Jos sitten kuitenkin haluat tehdä JavaScriptillä nuo, tee sitten riittävät varotoimet jokaiselle selaimelle erikseen, jotta koodit toimivat varmasti.
Toki, no ei sitten mitään jos asia on näin. Mutta jokatapauksessa tuo JS-hommeli kannattaa tehdä yhteensopivaksi usealle selaimelle ja toteuttaa niin että jos yhteensopivuutta ei ole, estetään js-koodi kyseiseltä selaimelta lagaamisen välttämiseksi ja jätetään suoraan tarkistus php:n murheeksi.TheFish wrote:Eiköhän tuo sama tehdä jo PHP:lläkin. Yleensä vain on tapana käyttää JavaScriptiä lomakkeiden validointiin jo ennen kuin se lähetetään palvelimelle.DJ-Filbe wrote: IMO, kannattaa käyttää tarkistukseen mieluummin PHP:tä, mitä jos vaikka JavaScript on kytketty pois päältä?
Opiskele hieman PHP :n perusteita ja tee tuo sama php:lla, silloin tuon toimivuus ei ole ainakaan selaimestasi kiinni.
En halua lähteä testailemaan koodiasi, koska eri selaimet hyväksyvät erilaisia HTML-elementtien määritteitä.
Tiedän esimerkiksi, että tuo ei tulisi toimimaan PSP :lläni, koska sen selain ei tue HTML-elementtien täydellistä JS-käsittelyä.
PHP sitävastoin toimii kaikkialla (php-tuetuissa palvelimissa oc).
Ja kyseisellä kielellä säästät myös rutkasti koodirivejä ja parannat sivujesi tietoturvaa, joskin tiedon lähetyksen lataus vienee muutaman millisekunnin pidempään.
Jos sitten kuitenkin haluat tehdä JavaScriptillä nuo, tee sitten riittävät varotoimet jokaiselle selaimelle erikseen, jotta koodit toimivat varmasti.
Useimmat selaimet tekevät nykyään niin että lataavat seuraavan sivun edellisen "päälle" niin, että jos seuraava sivu sisältää vain esim. varoitusboxeja, selain näyttää vain varoitusboxin vanhan sivun päällä. Näin tekee ainakin firefox täällä.TheFish wrote:Huomattavasti helpompaa käyttäjälle, kun ei tarvitse mennä eri sivulle vain nähdäkseen että jokin pakollinen tieto puuttuikin
...Täh? Ei varmasti tee, ellet tarkoita niitä alert-boksejasi.DJ-Filbe wrote:Useimmat selaimet tekevät nykyään niin että lataavat seuraavan sivun edellisen "päälle" niin, että jos seuraava sivu sisältää vain esim. varoitusboxeja, selain näyttää vain varoitusboxin vanhan sivun päällä. Näin tekee ainakin firefox täällä.TheFish wrote:Huomattavasti helpompaa käyttäjälle, kun ei tarvitse mennä eri sivulle vain nähdäkseen että jokin pakollinen tieto puuttuikin
Nimenomaan juuri niitä....esa94 wrote:...Täh? Ei varmasti tee, ellet tarkoita niitä alert-boksejasi.DJ-Filbe wrote:Useimmat selaimet tekevät nykyään niin että lataavat seuraavan sivun edellisen "päälle" niin, että jos seuraava sivu sisältää vain esim. varoitusboxeja, selain näyttää vain varoitusboxin vanhan sivun päällä. Näin tekee ainakin firefox täällä.TheFish wrote:Huomattavasti helpompaa käyttäjälle, kun ei tarvitse mennä eri sivulle vain nähdäkseen että jokin pakollinen tieto puuttuikin
No eipä se silti tee näin. Älykäs selain saattaisi hyvinkin pyytää vain tietyt osiot sivusta, mutt auskoisin sen silti lataavan sivun uudestaan vaikka vain saadakseen yhden ruman hälytysloodan näytölle.DJ-Filbe wrote:Nimenomaan juuri niitä.... :roll:esa94 wrote:...Täh? Ei varmasti tee, ellet tarkoita niitä alert-boksejasi.DJ-Filbe wrote: Useimmat selaimet tekevät nykyään niin että lataavat seuraavan sivun edellisen "päälle" niin, että jos seuraava sivu sisältää vain esim. varoitusboxeja, selain näyttää vain varoitusboxin vanhan sivun päällä. Näin tekee ainakin firefox täällä.