【问题标题】:jQuery - Change hidden value based on input fieldjQuery - 根据输入字段更改隐藏值
【发布时间】:2011-10-21 23:25:45
【问题描述】:

我正在使用表单字段来捕获特定情况的统计信息。我需要根据两个文本字段的输入来更改隐藏字段的值。我将用简单的英语描述该功能。将不胜感激帮助将其转换为正常运行的 jQuery 脚本。

隐藏字段等于“是”,其中 field_1 的值等于 4 && field_2 等于 2 要么 隐藏字段等于“是”,其中 field_1 的值等于 3 && field_2 等于 1 要么 隐藏字段等于“是”,其中 field_1 的值等于 2 别的 隐藏字段等于“否”

从语句的结构可以看出,我首先是一个php开发者。我假设这可以通过 jQuery 来完成。如果没有,请为我提供替代方案。谢谢!

【问题讨论】:

  • 我怀疑由于某种原因,您可能没有使用 parseInt 将输入转换为 Javascript 中的 int,即使 javascript 中的字符串比较应该可以工作,无论哪种方式,我的解决方案都可以快速输入,所以可能不会准确。
  • 阿里发布的方法是识别初始值(返回no,因为两者都是空的)但是当field1和field2的值改变时不更新。

标签: jquery forms input field


【解决方案1】:

希望这会有所帮助。查看jQuery api 以防您的字段在某些方面有所不同(例如它们是否是复选框)

var field1 = parseInt($('#field_1').val());
var field2 = parseInt($('#field_2').val());

if((field1 == 4 && field2 == 2) || (field1 == 3 && field2 == 1) || field1 == 2){
   $('#hidden').val('yes')
} else {
   $('#hidden').val('no')
}

【讨论】:

  • field1 和field2 的初始值(null)正在被脚本识别并将hidden 的值设置为no。但是当field1和field2的值改变时,hidden的值不会重新计算。
  • 如果初始值为 null,则在 parseInt 之前检查该值是否为 null 并将其设置为默认值。是的,这段代码不考虑值的变化,你必须绑定 field_1 和 field_2 的 onBlur onKeyUp 什么。为此,您必须 $('#fieldId').bind('blur', function(){ /* 上面的代码 */});您必须对这两个字段都执行此操作。
【解决方案2】:

下面使用keyup事件处理函数根据field_1和field_2的输入值(假设是文本输入)修改隐藏的输入值。

$('#field1 #field2').keyup(function() {
    var field_1 = parseInt($('#field_1').val());
    var field_2 = parseInt($('#field_2').val());

    if (field_1 == 4 && field_2 == 2) {
        $('#hidden').val('yes');
    }
    else if (field_1 == 3 && field_2 == 1) {
        $('#hidden').val('yes');
    }
    else if (field_1 == 2) {
        $('#hidden').val('yes');
    }
    else {
        $('#hidden').val('no');
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 2023-03-04
    • 2015-09-28
    相关资源
    最近更新 更多