我在我的一个表单中使用jQuery滑块组件,如下所示:
<form action="survey_dis.php" method="POST" target="_self" name="apForm">
<div data-role="rangeslider">
<input type="range" name="F1" id="F1" min="0" max="100" step="5" value="" onchange='document.getElementById("bar1").value = document.getElementById("F1").value."%";'>
<input type="text" name="bar1" id="bar1" value="" size="3" disabled />
</div>
(...)
</form>
如您所知,允许的范围应指示百分比,因此允许的值必须介于0和100之间。因为检查空($ var)将返回TRUE,即使对于&#34; 0&#34;,I& #39;违约&#34;价值&#34;用空字符串......
现在在我的php脚本中,我需要检查用户是否实际选择了一个值,而不是将其保持为默认值:
for ($i=1; $i<51; $i++){ // 51 questions
if (isset($_POST["F$i"]) && strlen($_POST["F$i"]) && ($_POST["F$i"]<>'-1') ){
$F_var = $_POST["F$i"];
} else {
print "Question # $i missing";
$missing_fields += 1;
}
}
然而,它总是看起来好像已经制作了一个滑块并且&#34; else&#34;条件永远不会适用......即使我默认&#34;价值&#34;用&#34; 0&#34;。
答案 0 :(得分:0)
首先,onchange
中存在语法错误。您的%
与.
而不是+
document.getElementById("F1").value + "%";'
为什么值0返回true?
您检查它的字符串长度,即使是0
,也是1。其他两个条件当然也是如此,因为0 != -1
和给定参数已设置。
您可以发送bar
字段并检查它们是否为默认空。 注意:要执行此操作,该字段不能为disabled
,因为在这种情况下它永远不会发送。例如,您可以将其设置为readonly
。
提示:您在$i=1
开始for循环。因此,我们永远不会检查您的上一个问题,因为您停止在$i<51
而不是$i<=51