您好,我希望在输入值更改时弹出窗口。我试过这个,我对输入的测试:
<input onchange="maFonction()" id="result" readonly="readonly" type="text" value="0" size = "10" />
我的功能
maFonction = function(){
$.post("yourFile.php");
}
yourfile.php
<?php
$a = 40 ;
if ($result > $a) {
?>
<script> alert("yay!"); </script>
<?php } elseif ($result == $a) {
?>
<input onclick="s(this.form);" type="button" value="sauvegarder" />
<?php
} else {
?>
<script> alert("boooo!"); </script>
<?php
}
?>
我解读readonly:它就像一个计算器:我有很多(7)输入,我可以存储值,readonly是总数。所以当它低于40时,当它相等时,以及当它超过40时,我需要一个msg。
感谢您的帮助,因为我没有任何错误,当我的页面在没有任何内容后刷新时,我只有弹出窗口。
答案 0 :(得分:1)
正如我在评论中所说,您不需要服务器端代码来执行此操作。 Here's a fiddle用jQuery做到这一点。很简单:
HTML:
<input type="text" id="myInput"/>
Javascript(假设你包含了jQuery):
$('document').ready(function() {
$('#myInput').on('change',function(){
if(isNaN(this.value))
alert("Please enter a number");
else
{
var a = 40;
var myNumber = parseInt(this.value);
if(myNumber > a) alert("yay!");
else if (myNumber == a) alert("equals!");
else alert("boooo!");
}
});
});
我认为代码很容易理解。请注意,您必须保留&#34;更改&#34;的文本字段。触发事件,它假设你实际上改变了一些东西。如果您希望每次都触发blur
事件,而不仅仅是在值发生变化时,您可以使用success
事件。
如果您想要或需要在服务器端执行此类检查(可能不比比较2个数字那么容易),您确实可以使用AJAX。但在这种情况下,我建议从服务器端代码返回XML,JSON甚至是未格式化的字符串,并在javascript中处理响应。例如,您可以简单地返回“更大”,“更小”,“等于”等等。 ,并在AJAX通话的<input type="text" id="input1" /><br/>
<input type="text" id="input2" /><br/>
<input type="text" id="input3" /><br/>
<input type="text" id="myInput" readonly="readonly"/>
事件中采取相应行动。但那是另一课; - )
在OP的评论之后编辑:
HTML
$('document').ready(function() {
$('#input1,#input2,#input3').each(function() {$(this).on('change',recalculate);}
);
});
function recalculate()
{
if(isNaN(this.value))
alert("Please enter a number");
else
{
var a = 40;
var value1 = $('#input1').val().trim() == "" ? 0 : parseInt($('#input1').val());
var value2 = $('#input2').val().trim() == "" ? 0 : parseInt($('#input2').val());
var value3 = $('#input3').val().trim() == "" ? 0 : parseInt($('#input3').val());
var total = value1 + value2 + value3
$('#myInput').val(total);
if(total > a) alert("yay!");
else if (total == a) alert("equals!");
else alert("boooo!");
}
}
Javascript:
$('document').ready(function() {
$('#input1,#input2,#input3').each(function() {$(this).on('change',recalculate);}
);
});
function recalculate()
{
if(isNaN(this.value))
alert("Please enter a number");
else
{
if($('#input1').val().trim() !== "" && $('#input2').val().trim() !== "" && $('#input3').val().trim() !== "")
{
var a = 40;
var value1 = $('#input1').val().trim() == "" ? 0 : parseInt($('#input1').val());
var value2 = $('#input2').val().trim() == "" ? 0 : parseInt($('#input2').val());
var value3 = $('#input3').val().trim() == "" ? 0 : parseInt($('#input3').val());
var total = value1 + value2 + value3
$('#myInput').val(total);
if(total > a) alert("yay!");
else if (total == a) alert("equals!");
else alert("boooo!");
}
}
}
如果您希望仅在填写所有3个字段时计算并发出警报:
{{1}}