Jag vill kolla av ett inmatningsfält så att när användaren matar in att det bara finns siffror och bindestreck i det, alltså inga bokstäver och dylikt, hur gör jag det? Det bästa är nog att använda reguljära uttryck. Jag lyckas aldrig få till det jag vill ha förrän femtielfte försöket men när det fungerar så fungerar det ju bra :) jag fattade ju inte ett jota av vad du just skrev haha FRÅN VBSCRIPT IN A NUTSHELL, O´REILLY varför loppar du inte bara igenom det, Det låter väl skapligt enkelt, men hur gör jag rent praktiskt, värdet kommer i en variabel som heter telnr, hur gör jag sen då? jag kan inte asp, inte alls faktiskt. Har gjort så här nu och försökt mig på Regexp men får fel att Det ser inte så rätt ut. Tycks inte fungera, objektet stöds inte av metoden eller nåt sånt stod detKolla inmatningsfält
Det är ett telefonnummer de ska mata inSv: Kolla inmatningsfält
Nåt sånt här kanske..
var regtest = new RegExp('^\d{3}\-\d{3}\-\d{4}$','');
if (regtest.test(blah.value))
{
alert('Fint telefonnummer');
}
Detta fungerar nog inte exakt så som du vill ha det men telefonnummer är väl ganska så vanligt att validera så du kan säkert googla fram nåt bättre. Det kan ju vara bra att köra ett test på servern i ASP t.ex. också ifall användaren har stängt av javascript eller nåt liknande.
/MattiasSv: Kolla inmatningsfält
Jag vill egentligen bara kolla så att det inte finns nåt a-ö i fältet och i så fall ska det komma upp en feltext men det har jagSv: Kolla inmatningsfält
<SCRIPT LANGUAGE="JavaScript1.1">
// A utility function that returns true if a string contains only
// whitespace characters.
function isblank(s)
{
for(var i = 0; i < s.length; i++) {
var c = s.charAt(i);
if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
}
return true;
}
// This is the function that performs form verification. It will be invoked
// from the onSubmit() event handler. The handler should return whatever
// value this function returns.
function verify(f)
{
var msg;
var empty_fields = "";
var errors = "";
// Loop through the elements of the form, looking for all
// text and textarea elements that don't have an "optional" property
// defined. Then, check for fields that are empty and make a list of them.
// Also, if any of these elements have a "min" or a "max" property defined,
// then verify that they are numbers and that they are in the right range.
// Put together error messages for fields that are wrong.
for(var i = 0; i < f.length; i++) {
var e = f.elements[i];
if (((e.type == "text") || (e.type == "textarea")) && !e.optional) {
// first check if the field is empty
if ((e.value == null) || (e.value == "") || isblank(e.value)) {
empty_fields += "\n " + e.name;
continue;
}
// Now check for fields that are supposed to be numeric.
if (e.numeric || (e.min != null) || (e.max != null)) {
var v = parseFloat(e.value);
if (isNaN(v) ||
((e.min != null) && (v < e.min)) ||
((e.max != null) && (v > e.max))) {
errors += "- The field " + e.name + " must be a number";
if (e.min != null)
errors += " that is greater than " + e.min;
if (e.max != null && e.min != null)
errors += " and less than " + e.max;
else if (e.max != null)
errors += " that is less than " + e.max;
errors += ".\n";
}
}
}
}
// Now, if there were any errors, display the messages, and
// return false to prevent the form from being submitted.
// Otherwise return true.
if (!empty_fields && !errors) return true;
msg = "______________________________________________________\n\n"
msg += "The form was not submitted because of the following error(s).\n";
msg += "Please correct these error(s) and re-submit.\n";
msg += "______________________________________________________\n\n"
if (empty_fields) {
msg += "- The following required field(s) are empty:"
+ empty_fields + "\n";
if (errors) msg += "\n";
}
msg += errors;
alert(msg);
return false;
}
</SCRIPT>
<!------------------------------------------------------------------------
Here's a sample form to test our verification with. Note that we
call verify() from the onSubmit() event handler, and return whatever
value it returns. Also note that we use the onSubmit() handler as
an opportunity to set properties on the form objects that verify()
will use in the verification process.
-------------------------------------------------------------------------->
<FORM onSubmit="
this.firstname.optional = true;
this.phonenumber.optional = true;
this.zip.min = 0;
this.zip.max = 99999;
return verify(this);
">
First name: <INPUT TYPE=text NAME="firstname">
Last name: <INPUT TYPE=text NAME="lastname"><BR>
Address:<BR><TEXTAREA NAME="address" ROWS=4 COLS=40></TEXTAREA><BR>
Zip Code: <INPUT TYPE=text NAME="zip"><BR>
Phone Number: <INPUT TYPE=text NAME="phonenumber"><BR>
<INPUT TYPE=submit>
</FORM>Sv: Kolla inmatningsfält
och kollar så att det motsvarar ett ascii värde?
var >= 48 || var <= 57 || var == 45
48 - 57 = 0 - 9
45 = (-)-tecknet
kanske lite omständigt, "but it does it work ;D"Sv: Kolla inmatningsfält
Sv: Kolla inmatningsfält
något sådant här hade det sett ut i php:
<code>
$telenr = 31231-213131;
for($a=0;$a<strlen($telenr);$a++)
{
if(ord($telenr[$a]) >= 48 && ord($telenr[$a]) <= 57 || ord($telenr[$a]) == 45)
{
print "duktig ponke, du klarade det";
}
else
{
print "error, unknown characters !";
}
}
</code>
hoppas du kan utgå ifrån detta för att göra det i asp.. ;)Sv: Kolla inmatningsfält
Object doesn't support this property or method på raden med if-satsen, kan man göra på annat vis?
<code>
<%
Dim objRegExp
Telefon = Request.form("telefon")
MyString = Telefon
Set objRegExp = New regexp
objRegExp.Global = true
objRegexp.IgnoreCase = true
objRegExp.Pattern = "\d-\d"
Set myMatches = objRegExp.Execute(myString)
If myMatches = "" Then
Response.Write "Fel"
Else
Response.Write "Rätt"
End If
%>
</code>Sv: Kolla inmatningsfält
Nu är det ett slag sedan jag sysslade med sådant men...
<code>
<%
Telefon = FixaTecken(Request.form("telefon"))
Function FixaTecken(sfix)
Dim objRegExp
Set objRegExp = New regexp
objRegExp.Global = true
objRegexp.IgnoreCase = true
objRegExp.Pattern = "\d-\d"
Set FixaTecken = objRegExp.Execute(sfix)
End Finction
%>
</code>
Någonting så här har jag för mig.Sv: Kolla inmatningsfält