Hi
habe ein Problem mit dem Ereignis "onBlur", was aber nur in Netscape 6.2 auftaucht und nicht im Internet Explorer 6.
Ich habe in einem Input-Feld vom typ "Text" ein Check in das OnBlur-Ereignis integriert. Wenn der Check negativ verläuft, soll der Focus auf dem Feld bleiben. Im IE 6 bleibt der Focus erhalten, beim NN 6.2 geht er verloren.
Hat einer eine Erklärung und/oder insbesondere einen Workaround?
Folgend das Beispiel (damit der Check ein negatives Ergebnis liefert, kann z.B eine 0 eingegeben werden):
<html>
<head>
</head>
<body>
<form name="form" method="post">
<script language="javascript">
<!--
function IsPositiveFloat(io_oInputField, i_bIsZeroAllowed)
{
var fDouble;
var bIsPositiveFloat;
bIsPositiveFloat = false;
if (io_oInputField.value.length == 0)
{
io_oInputField.value = "0";
}
if (isNaN(io_oInputField.value) == false)
{
fDouble = parseFloat(io_oInputField.value);
if (i_bIsZeroAllowed == true)
{
if (fDouble >= 0)
{
bIsPositiveFloat = true;
}
}
else
{
if (fDouble > 0)
{
bIsPositiveFloat = true;
}
}
}
if (bIsPositiveFloat == false)
{
if (i_bIsZeroAllowed == true)
{
io_oInputField.value = 0;
}
else
{
io_oInputField.value = 1;
}
io_oInputField.focus();
io_oInputField.select();
}
else
{
io_oInputField.value = fDouble;
}
return(bIsPositiveFloat);
}
-->
</script>
<table>
<tr>
<td >
<input type="text" name="value" size="10" maxlength="12" value="1" onblur="javascript:IsPositiveFloat(this,false);" />
</td>
</tr>
<tr>
<td >
<input type="text" name="value" size="10" maxlength="12" value="1" onblur="javascript:IsPositiveFloat(this,false);" />
</td>
</tr>
</table>
</form>
</body>
</html>