我的用于显示建议的代码在Firefox上可以正常使用,但在Chrome和IE上则无法使用

时间:2019-06-14 07:02:02

标签: javascript google-chrome internet-explorer onblur onkeyup

该功能应该根据用户在文本框中输入的内容加载建议。

onkeyup和onblur事件应该在文本框中进行评估,然后结果将被馈送到最初隐藏的div,该div在馈入数据之前将首先显示。

最初,这些事件已包含在标记中,该标记对于Firefox来说效果很好。

作为替代方案,我尝试从标记中删除事件,并使用jQuery $()选择器将事件与函数绑定在一起,从而使该函数在以后的任何浏览器上均无法正常工作。

这是适用于Firefox的代码,但不适用于IE和chrome。

<td align="center">
    <input type='text' size='25' id='dr' name='dr' style="width: 45px" onkeyup='drKeyUpFunction(this.value);' onblur='drBlurFunction();'>
    <div id='drSuggestions' class='suggestionsBox' style='display: none'>
        <div id='drSuggestionsList' class='suggestionList'></div>
    </div>
</td>

<td align="center">
    <input type='text' size='25' id='outExpense' name='outExpense' style='width: 85px' onkeyup='expKeyUpFunction(this.value);' onblur='expBlurFunction();'>
    <div id='expSuggestions' class='suggestionsBox' style='display: none'>
        <div id='expSuggestionsList' class='suggestionList'></div>
    </div>
</td>
function drKeyUpFunction(dr_num=''){
    if (dr_num.length == 0){ $('#drSuggestions').hide();
    } else {
        $.post("post_dr.php", {string: "" + dr_num + ""}, function(data){
            if (data.length > 0) {
                $('#drSuggestions').show();
                $('#drSuggestionsList').html(data);
            }
        });
    }
}

function drBlurFunction(thisValue='', thatValue='', anotherValue=''){
    $('#dr').val(thisValue);
    $('#drcust').html(thatValue);
    $('#drbal').html(anotherValue);
    setTimeout("$('#drSuggestions').hide();", 200);
}

function expKeyUpFunction(expense=''){
    if (expense.length == 0){ $('#expSuggestions').hide();
    } else {
        $.post("post_expense.php", {string: "" + expense + ""}, function(data){
            if (data.length > 0) {
                $('#expSuggestions').show();
                $('#expSuggestionsList').html(data);
            }
        });
    }
}

function expBlurFunction(thisValue=''){
    $('#outExpense').val(thisValue);
    setTimeout("$('#expSuggestions').hide();", 200);
}

作为替代方案,我删除了输入标签中的事件,并将这些jQuery选择器放置在包含函数的js文件中,但在放置它们后它们不再起作用。

$('#dr').keyUp(drKeyUpFunction(this.value)).blur(drBlurFunction());
$('#outExpense').keyUp(expKeyUpFunction(this.value)).blur(expBlurFunction());

此代码的预期结果是显示所有浏览器中可用建议的div。

如果您能帮助我,我将不胜感激。

0 个答案:

没有答案