jQuery Slider到php脚本:问题处理" 0"值

时间:2017-03-22 13:49:36

标签: php jquery string jquery-ui-slider

我在我的一个表单中使用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;。

1 个答案:

答案 0 :(得分:0)

首先,onchange中存在语法错误。您的%.而不是+

连接在一起

document.getElementById("F1").value + "%";'

为什么值0返回true?

您检查它的字符串长度,即使是0,也是1。其他两个条件当然也是如此,因为0 != -1和给定参数已设置。

您可以发送bar字段并检查它们是否为默认空。 注意:要执行此操作,该字段不能为disabled,因为在这种情况下它永远不会发送。例如,您可以将其设置为readonly

提示:您在$i=1开始for循环。因此,我们永远不会检查您的上一个问题,因为您停止在$i<51而不是$i<=51

上循环