problem med validering
Hej
jag har ett formulär med följande kod:
<code>
<form id="formularet" name="form" method="post" action="">
Namn: <input name="namn" type="text" />
Ort: <input name="ort" type="text" />
<input id="skicka" name="skicka" type="submit" value="Skicka" />
</form>
</code>
När användaren har fyllt i sitt namn och hoppar ner till ort så vill jag att namn rutan ska valideras så att det inte finns något annat än bokstäver där.
har följande javaskript:
<code>
var Formularet = {
form:null,
init: function()
{
this.form = document.getElementById("formularet");
var text = /^[a-zA-Zå-öÅ-Ö]$/;
if(!this.form.elements["namn"].onblur.value.match(text));
{
alert("fel");
}
}
}
window.onload = Formularet.init;
</code>
Detta vill inte fungera. Hur löser jag det så att textrutan valideras när man har fyllt i den och lämnat den??
Tacksam för all hjälp jag kan få
Svara
Sv: problem med validering
<b>if(!this.form.elements["namn"].onblur.value.match(text));</b>
Har du överhuvudtaget något hum om vad du gör där?
Pröva detta (har inte prövat själv):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | init: function () { this .form = document.getElementById( "formularet" ); var text = /^[a-zA-Zå-öÅ-Ö]$/; this .form.namn.onblur = function () { if (! this .value.match(text)); { alert( "fel" ); } } } |
Svara
Sv:problem med validering
tack för tipset :D
men min var text = /^[a-zA-Zå-öÅ-Ö]$/; fungerar nog inte som den ska.
hittade istället denna:
<code>
function kollabokstaver (str)
{
var index;
str = str.toLowerCase ();
for (index = 0; index < str.length; ++index)
{
if ('abcdefghijklmnopqrstuvwxyzåäö'.indexOf
{
(str.substring (index, index + 1)) == -1)
return false;
}
return true;
}
},
</code>
så har nu följande kod:
<code>
var Formularet = {
form:null,
init: function()
{
this.form = document.getElementById("formularet");
document.getElementById("skicka").className='hide';
//document.getElementById("skicka").createElement('Skicka Uppgifter');
//var linkButton = document.createElement("a");
//linkButton.onclick = sendForm;
//this.form.appendChild(linkButton);
if(document.getElementById("fnamn").onBlur)
{
var fornamnVarde = document.getElementById("fnamn").value;
var fornamn = Formularet.kollabokstaver(fornamnVarde);
if (fornamn == false)
{
alert("fel");
}
}
},
kollabokstaver: function (str)
{
var index;
str = str.toLowerCase ();
for (index = 0; index < str.length; ++index)
{
if ('abcdefghijklmnopqrstuvwxyzåäö'.indexOf)
{
((str.substring (index, index + 1)) == -1);
return false;
}
return true;
}
},
kollasiffror: function (str)
{
var index;
for (index = 0; index < str.length; ++index)
{
if ('0123456789'.indexOf (str.substring))
{
((index, index + 1) == -1);
return false;
}
return true;
}
},
}
window.onload = Formularet.init;
</code>
men den fungerar inte. Som enligt koden så ska rutan fel visas om man matar in en siffra i namn rutan, men det gör den inte. Får heller inget felmeddelande.:S
Svara
Sv: problem med validering
1 | var text = /^[a-zA-Zå-öÅ-Ö]$/; |
Den där funkar ju ifall du vill ha ett och endast ett tecken
sätt
1 | var text = /^[a-zA-Zå-öÅ-Ö]+$/; |
istället så bordet det funka bättre.. (eller byt ut plusset mot stjärna ifall en tom sträng ska godkännas)
Svara
Sv:problem med validering
tack, nu får jag fram felmeddelandet iaf. Problemet är nu att felmeddelande kommer fram även om rätt namn skrivs in.
Känns som om det vore fel på var text = /^[a-zA-Zå-öÅ-Ö]+$/; ????
Svara
Sv: problem med validering
problemet är att å,ä,ö inte kommer i den ordning du tänker dej varesej i latin-1 eller utf-8
http://www.tony-franks.co.uk/UTF-8.htm samt http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/iso_table.html
Ett enkelt sätt att komma runt det är ju att explicit lista åäö (det är ju inte precis så att det blir mera kod för det)
1 | var text = /^[a-zA-ZåäöÅÄÖ]+$/; |
Svara
Sv:problem med validering
tack, nu vart det bättre :D
har ett annat fel nu :(
<code>
document.body.className="mork";
document.getElementsByName("input").disabled = true;
document.getElementsByTagName("select").disabled = true;
</code>
dessa vill inte fungera, får inget felmeddelande eller not, det händer inget bara.
Hur löser jag detta?? :S
Svara