【问题标题】:form value disappear when clicked单击时表单值消失
【发布时间】:2013-10-24 05:44:38
【问题描述】:

我有一个带有 6 个单选按钮的问题,因此它们的编码为 1、2、3、4、5、99,还有一个文本框可以输入逐字回答。如果选择了代码 1-5,则文本框中的值将消失,如果选择了代码 99,则文本框中的答案将显示出来。

但是当我点击文本框编辑之前输入的逐字文本时,文本框中的所有文本都会消失,

文本框ID为:Q6_99_other

这是脚本:

var txt = "";
$('#fieldset_Q6 input').parent().each(function () {
    $(this).click(function () {
        //alert('checked');

        $('#Q6_99_other').on('keyup change', function () {
            txt = this.value;
        })

        var id = $(this).children().attr('id');
        if (id == 'Q6_1_99') {
            $('#Q6_99_other').val(txt);
        } else {
            $('#Q6_99_other').val('');
        }

    });
});

有人有什么建议吗?也许我需要修改脚本的“keyup change”部分?

非常感谢, 罗伊

【问题讨论】:

    标签: jquery forms input


    【解决方案1】:

    单击文本框时,单击事件会冒泡到父元素。这将运行您编写的点击处理程序。由于孩子的ID不是Q6_1_99,所以执行$('#Q6_99_other').val(''),清除文本字段。

    您可以通过以下方式防止这种冒泡:

    $("#Q6_99_other").click(function(e) {
        e.stopPropagation();
        this.focus();
    });
    

    此外,您可能不应该在单击处理程序中使用 keyup change 绑定。这意味着每次用户单击父级时,它都会在文本框上绑定另一个keyup change 处理程序。你只需要这样做一次,而不是每次点击。只需在顶级 document.ready 处理程序中执行即可。

    您也不需要使用.each() 将处理程序绑定到所有元素。事件绑定函数可以应用于集合,jQuery 会自动对其进行迭代。

    【讨论】:

    • 嗨,Barmar,你绝对是正确的!!!由于Q6_99_other也是“#fieldset_Q6输入”云下的输入,所以已经清空了答案。我已将“keyup change”功能从每次单击功能中移出,并删除了 .each(),效果很好,非常感谢!
    • 还有一个问题,当我点击文本框中的文本时,光标会跳到文本的开头,这是什么原因?这发生在“$('#Q6_99_other').val(txt);”,例如如果 txt = 'whatever',当我点击检索到的文本 'whatever' 时,光标将指向文本的开头,所以它看起来像 '|whatever',而不是点击它的位置,例如例如'wha|tever'。
    • 脚本现在如下所示供您参考: var txt = ""; $('#Q6_99_other').on('keyup change', function(){ txt = this.value; }) $('#fieldset_Q6 input').parent().click(function(){ var id=$ (this).children().attr('id'); if(id == 'Q6_1_99' || id == 'Q6_99_other'){$('#Q6_99_other').val(txt);}else{$ ('#Q6_99_other').val('');} });
    • 由于你在点击时替换了输入框的.val(),所以它失去了对光标位置的跟踪。
    • 谢谢 Barmar,不确定是否可以防止这种情况发生?
    猜你喜欢
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多