按键上的jQuery绑定没有触发

时间:2015-06-19 21:13:18

标签: javascript jquery html

我正在尝试将按键和表单值更改绑定到更新功能,以便最终用户可以实时查看其更新的效果。由于某种原因,它根本没有射击。

HTML

<fieldset class="IOPS-field">
    <legend>IOPS/Bandwidth</legend>
    <table>
        <tr>
            <td>
                <input type="radio" name="bandwidth" value="IOPS-block" checked>IOPS at Block Size:
            </td>
            <td>
                <input type="text" name="IOPS" id="IOPS" value="500000" size="3"> at
                <select id="block-size">
                    <option value="4096" selected>4K</option>
                    <option value="8192">8K</option>
                    <option value="16384">16K</option>
                    <option value="32786">32K</option>
                    <option value="65536">64K</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>
                <input type="radio" name="bandwidth" value="pure-bandwidth">Bandwidth (GBps):
            </td>
            <td>
                <input type="text" name="bandwidth-entry" value="1953.125" id="bw" size="6">
            </td>
        </tr>
    </table>
</fieldset>

的jQuery / JavaScript的

function iops_bw_update(toUpdate) {
        var iops = parseInt($("#IOPS").val());
        var block = parseInt($("#block-size").val());
        var bw = parseFloat($("#bw").val());

        if (toUpdate == "BW") {
            $("#bw").val((iops*block)/1048576);
        }
        else {
            $("#IOPS").val((bw*1048576)/block);
        }
}

$(document).ready(function(){    
    $("#IOPS").bind("keypress", iops_bw_update("BW"));
    $("#bw").bind("keypress", iops_bw_update("IOPS"));
    $("#block-size").bind("change", iops_bw_update("BW"));
});

3 个答案:

答案 0 :(得分:1)

您需要传递函数ref而不是传递函数的值。

config/puma/production.rb

使用params绑定处理程序的正确方法是:

$("#IOPS").bind("keypress", your_function); // note: no () when no params need to be passed!

答案 1 :(得分:0)

您尚未绑定任何功能。你已经打电话了。

尝试这样:

$(document).ready(function(){    
    $("#IOPS").bind("keypress", iops_bw_update);
    $("#bw").bind("keypress", iops_bw_update);
    $("#block-size").bind("change", iops_bw_update);
});

答案 2 :(得分:0)

在javascript()中意味着调用该函数。如果要绑定函数,则必须只放置函数名称,如下所示:

$(document).ready(function(){    
    $("#IOPS").keypress(iops_bw_update);
    $("#bw").keypress(iops_bw_update);
    $("#block-size").change(iops_bw_update);
});

您不需要将完整的功能放入绑定中。只有没有()的名称。