Input mező Javascipt ellenőrzése nem működik Firefoxban
Kód:
function nevdiv(ertek1, ertek2)
{
if (form.a1.value == "Név" && test.a2.value == "Név")
{
alert("Töltsd ki a mezőket!");
return (false);
}
if (form.a1.value == "")
{
alert("1. mező üres!");
test.a1.focus();
return (false);
}
if (form.a2.value == "")
{
alert("2. mező üres!");
test.a2.focus();
return (false);
}
<!--
Engedélyezett karakterek ellenőrzéséért felelős kódot is kivettem.
Ugyanakkor hiányzik az a rész is, ami feldolgozza és kiküldi az a1 a2 értéket POST-ban. -->
}
<input onclick = "nevdiv(a1.value, a2.value)" value = "Mehet" class="button" type = "button">
Chrome-ban tökéletesen működik, de firefoxban nem csinál semmit.
Ha kiveszem az if feltételeket, akkor firefoxban is megy, hiba nélkül elküldi az értékeket, viszont akkor oda az ellenőrzés.
Esetleg külön funkcióba kellene tenni az ellenőrzést?
Az lenne a lényege a kódnak, hogy csak akkor küldje el a beviteli értékeket, ha minden adat átment a biztonsági ellenőrzésen.
re: Input mező Javascipt ellenőrzése nem működik Firefoxban
Telepitsd a firebug-ot es console-ban valoszinu latni fogod mi a hiba. Vagy linkelj be egy minta oldalt.
re: Input mező Javascipt ellenőrzése nem működik Firefoxban
Elég kusza a formod megcímzése a javascripten belül, illetve form-nak elnevezni form-ot nem szerencsés...
javított kód:
Kód:
<form onSubmit="return nevdiv()" name="myform" ... >
function nevdiv()
{
if (this.a1.value == "Név" && this.a2.value == "Név")
{
alert("Töltsd ki a mezőket!");
return (false);
}
if (this.a1.value == "")
{
alert("1. mező üres!");
this.a1.focus();
return (false);
}
if (this.a2.value == "")
{
alert("2. mező üres!");
this.a2.focus();
return (false);
}
}
vagy HTML5:
<input type="text" placeholder="Név" name="a1" pattern="[a-zA-Z0-9]+" required> (html5 pattern -ek nézz utána google-ön)
re: Input mező Javascipt ellenőrzése nem működik Firefoxban
Ezt dobta be a Firebug:
Kód:
If <script> tags have a "type" attribute, it should equal "text/javascript" or "application/javascript".
Also scripts must be parsable (syntactically correct).
Rákerestem a hibára elvileg ezt a sort kell kicserélni
Kód:
<script language = "javascript" type = "text/javascript">
#a rövidített változatra
<script type="text/javascipt">
Kipróbáltam, még a cookie-kat is töröltem, de sajnos ez sem hozott eredményt.
Idézet:
Elég kusza a formod megcímzése a javascripten belül, illetve form-nak elnevezni form-ot nem szerencsés...
Igazad van kicsit kesze-kusza, de remélem azért átjött. Mentségemre szóljon, hogy a valós kódnál nem form-nak neveztem el. Azért adtam meg így, hogy a form-ra utaljak. Én úgy vettem észre, hogy külföldi lapoknál így szokás.
HTML5-ben biztos egyszerűbb lenne, viszont javascriptben már sikerült megoldanom a pattern-t.
Az egyes beviteli mezők logikai kapcsolatát is vizsgálom, bár lehet, hogy kicsit túlbonyolítom a dolgot.
Egyszer már megpróbáltam PHP-ben megírni, de nem igazán jött össze, az ékezetekkel is gondom akadt.
Saját célra készül a dolog, illetve a határidő is szűkös, ezért engedem meg magamnak a silányabb munkát. :)
Később gyakorlásképp továbbfejlesztem PHP-ben.
re: Input mező Javascipt ellenőrzése nem működik Firefoxban
PHP oldalról többnyire mindig kell ellenőrizni az inputot, azt nem úszod meg... :)
re: Input mező Javascipt ellenőrzése nem működik Firefoxban
Ha lesz időd szerintem érdemes lenne megnézned a jQuery-t is. Egyszerűsíti a javascript-es munkát és böngészőfüggetlen.
A te kódod egyébként valahogy így nézne ki jQuery-vel:
<form id="myform" action="index.php" method="post">
<input id="field1" type="text" name="field1" value="Név" />
<input id="field2" type="text" name="field2" value="Név" />
<input type="submit" value="ok" />
</form>
<script type="text/javascript">
$(document).ready(function(){
$("#myform").submit(function(){
if($("#field1").val() == "Név" && $("#field2").val() == "Név") {
alert("Töltsd ki a mezőket!");
return false;
}
if($("#field1").val() == "") {
alert("1. mező üres!");
return false;
}
if($("#field2").val() == "") {
alert("2. mező üres!");
return false;
}
})
});
</script>
re: Input mező Javascipt ellenőrzése nem működik Firefoxban
Kód:
# Ez alapján sikerült megcsinálnom: document.getElementById("id")
function nevdiv(ertek1, ertek2)
{
if (document.test.a1.value == "Név" && document.test.a2.value == "Név")
{
alert("Töltsd ki a mezőket!");
return (false);
}
if (document.test.a1.value == "")
{
alert("1. mező üres!");
document.test.a1.focus();
return (false);
}
if (document.test.a2.value == "")
{
alert("2. mező üres!");
document.test.a2.focus();
return (false);
}
<!-- etc -->
}