简体   繁体   English

JavaScript负数下拉

[英]javascript negative number in pull down

When I click "EDIT" link on a specific user it is suppose to tell me how many vacation days he/she has left... the Edit link is like this: 当我单击特定用户上的“编辑”链接时,应该告诉我他/她离开了多少休假日...编辑链接是这样的:

print "<a href=\"javascript:editUser('$data[uid]','$data[vacationdays]')\">Edit</a>\n";

So when i click EDIT on ADMIN account: javascript:editUser('Admin','-3.0') is the actual values 因此,当我在ADMIN帐户上单击“编辑”时:javascript:editUser('Admin','-3.0')是实际值

The javascript: JavaScript:

<script language="javascript">
    function editUser(uid, vacationdays) {
    document.userForm.uid.value = uid;
    document.userForm.vacationdays.value = vacationdays;
    document.location.href = "#AddEdit";
    }
</script>

The website PHP/HTML: 网站PHP / HTML:

Vacation days: <select name="vacationdays" id="vacationdays" />
               <?php 
               for ($i=-30.5;$i<30.5;$i+=0.5)
               echo "<option value=\"$i\">$i</option>\n";
               ?>
               </select>

The problem is only with negative numbers (-1 or -2...etc) not showing up in the form pull down menu. 问题仅在于负数(-1或-2 ...等)未出现在下拉菜单中。 Positive numbers show up no problem. 正数表示没有问题。

Example positive number: 正数示例: 在此处输入图片说明

Example negative number: 负数示例: 在此处输入图片说明

**** i dont want to be able to select a negative values from the pull down.. but if the value is negative i just want it to show once and when you click on the pull down you can only select positive numbers **** ****我不想从下拉列表中选择一个负值。但是,如果该值为负,我只希望它显示一次,当您单击下拉列表时,您只能选择一个正数** **

If i change the pulldown to a TEXTFIELD it works perfectly fine with negative numbers...weird? 如果我将下拉菜单更改为TEXTFIELD,则在负数的情况下效果很好...很奇怪吗?

Just add the negative numbers to your list : 只需将负数添加到您的列表中:

function vacationdays_list() {
    for ($i=-30.5; $i<30.5; $i+=0.5)
        echo "<option value=\"$i\">$i</option>\n";
}

generate list for negative number between -30.5 till 0 生成-30.5到0之间的负数的列表

 for ($i=-30.5;$i<0;$i+=0.5)
    echo "<option value=\"$i\">$i</option>\n";

generate list for number between -30.5 till +30.5 生成-30.5到+30.5之间的数字的列表

 for ($i=-30.5;$i<30.5;$i+=0.5)
    echo "<option value=\"$i\">$i</option>\n";

if you want always selected be a positive number you can use Absolute abs() http://php.net/manual/en/function.abs.php in php or Math.abs in JavaScript 如果您希望始终选择一个正数,则可以使用php中的Absolute abs() http://php.net/manual/en/function.abs.php或JavaScript中的Math.abs

generate list for number between -30.5 till +30.5 that negative number is disabled 生成-30.5到+30.5之间的数字的列表,该数字已禁用负数

for ($i=0;$i<30.5;$i+=0.5)
    echo "<option value=\"$i\" >$i</option>\n";  
for ($i=-30.5;$i<0;$i+=0.5)
    echo "<option value=\"$i\" disabled>$i</option>\n";

edit: 编辑:

 Vacation days: <select name="vacationdays" id="vacationdays" />
           <?php 
           for ($i=30.5;$i>0;$i-=0.5)
              echo "<option value=\"$i\" >$i</option>\n";  
           for ($i=0;$i>-30.5;$i-=0.5)
              echo "<option value=\"$i\" disabled>$i</option>\n";  
           ?>
           </select>   

You don't need to echo your function, so it should be 您无需echo您的函数,因此应该

Vacation days: <select name="vacationdays" id="vacationdays" />
               <?php vacationdays_list(); ?>
               </select>

and for negative numbers 和负数

function vacationdays_list() {
    for ($i=-30.5; $i<30.5; $i+=0.5)
        echo "<option value=\"$i\">$i</option>\n";
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM