javascript - 这段代码中的 jQuery focus() 方法在做什么?

标签 javascript html forms shopping-cart liquid

我想知道此脚本中是否需要下面的行,如果需要,它的用途是什么。

$("#quantity-0").focus(); 

如果我没有 ID 为“quantity-0”的表单字段,我还可以关注哪些其他元素(如果需要)?我可以聚焦隐藏的表单元素吗?

这是我的代码。它来自this blog

<script type="text/javascript" charset="utf-8">
//<![CDATA[
// Including jQuery conditionnally.
if (typeof jQuery === 'undefined') {
    document.write({{ "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" | script_tag | json }});
    document.write('<script type="text/javascript">jQuery.noConflict();<\/script>');
}
//]]>
</script>

<script>

$(document).ready(function () {
    $("#quantity-0").focus();    
    var length = $("#linklist-length").val();
    $("#submit-table").click(function(e) {     
        e.preventDefault();
        //array for Variant Titles
        var toAdd = new Array();
        var qty;
        for(i=0; i < length; i++){

            toAdd.push({
                variant_id: $("#variant-"+i).val(),        
                quantity_id: $("#quantity-"+i).val() || 0
            });
        }
        function moveAlong(){
            if (toAdd.length) {
                var request = toAdd.shift();
                var tempId= request.variant_id;
                var tempQty = request.quantity_id;
                var params = {
                    type: 'POST',
                    url: '/cart/add.js',
                    data: 'quantity='+tempQty+'&id='+tempId,
                    dataType: 'json',
                    success: function(line_item) { 
                        //console.log("success!");
                        moveAlong();

                    },
                    error: function() {
                        //console.log("fail");
                        moveAlong();

                    }
                };
                $.ajax(params);
            }
            else {              
                document.location.href = '/cart';
            }  
        };
        moveAlong();
    });
});

</script>

最佳答案

I want to know if the line below is needed in this script, and if so, what purpose it serves.

调用jQuery .focus() method不带参数将焦点设置为指定元素。该行是文档就绪处理程序中的第一行。因此,其目的是在页面首次打开/加载时将焦点设置到该特定字段。

至于是否需要,这实际上取决于页面设计者。将焦点设置到用户最有可能首先想要交互的字段通常对他们有帮助。如果您没有,它不会阻止页面工作或任何其他操作。

If I do not have a form field with id "quantity-0" what other elements could I focus (if required)?

您可以将焦点设置到您喜欢的任何元素。通常,这可以是某种表单元素(输入、按钮等)或超链接。无论哪一个对于用户在页面加载时首先进行交互最有意义。

Can I focus a hidden form element?

你为什么要这么做?用户与隐藏元素交互是没有意义的。我相信尝试将焦点设置到隐藏元素可能会在某些浏览器中出现错误。

关于javascript - 这段代码中的 jQuery focus() 方法在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27085120/

相关文章:

javascript - 使用 cheerio 从同一个 tr 中提取多个值?

javascript - 如果 Array 键实际上是字符串,那么 Array 与 Object 的区别是什么?

jquery - 在 HTML5 视频中捕获特定时间的图像

javascript - 提交更改输入字段的表单

php - Drupal 从编辑表单中的 url 获取参数并填充表单

javascript - 捕获复选框上的单击事件

javascript - 部署时自定义操作 URL 错误 : Error occurred in deployment step

python - difflib.HTMLDiff.make_file() 的输出未在浏览器中呈现

html - 更改浏览器宽度时,Bootstrap 2x2 面板不对齐

html - 将 paypal 下拉菜单更改为图片