javascript - 合并两个独立函数的结果?

标签 javascript jquery .net dotnetnuke

  • 利用 ASP 和 DotNetNuke 循环浏览重复单选按钮的列表。
  • 使用 JQuery
  • 当前显示权重计算函数的正确结果值(例如:3)
  • 如何将 rbtCalculations 结果与weightCalculations 结果合并?
  • 例如:IF rbtCalculations = 非常高 AND WeightCalculations = 高 THEN $('p.custom' + ID).text("5");

    <input id="rbt_0" name="rbt" value="Very High" checked="checked" onclick="rbtCalculations(this,6559);" type="radio">
    <input id="rbt_1" name="rbt" value="High" onclick="rbtCalculations(this,6559);" type="radio">
    
    <input id="stakeholders_rbt_0" name="stakeholders_rbt" value="Very High" onclick="weightCalculations(this,6559);" type="radio">
    <input id="stakeholders_rbt_1" name="stakeholders_rbt" value="High" checked="checked" onclick="weightCalculations(this,6559);" type="radio">
    <input id="stakeholders_rbt_2" name="stakeholders_rbt" value="Low to Moderate" onclick="weightCalculations(this,6559);" type="radio">
    
    <p class="custom6559">3</p>
    
    <script type="text/javascript">
        function weightCalculations(value, ID) {
            if (value.value == "High") {
                $('p.custom' + ID).text("3");
            }
            else {
                $('p.custom' + ID).text("2");
            }
    }
    

最佳答案

我可能只是添加一个 class到单选按钮来识别它们,并使用一个包装元素将所有部分关联在一起:

<div class="js-weight-calc-wrap">
    <input type="radio" class="js-rbt" ... />
    <input type="radio" class="js-rbt" ... />

    <input type="radio" class="js-weight" ... />
    <input type="radio" class="js-weight" ... />
    <input type="radio" class="js-weight" ... />

    <p class="js-result custom6559"></p>
</div>

<script>
jQuery(document).ready(function ($) {
    $('.js-rbt, .js-weight').change(function () {
        var $this = $(this),
            $wrap = $this.closest('.js-weight-calc-wrap'),
            rbtVal = $wrap.find('.js-rbt:checked').val(),
            weightVal = $wrap.find('.js-weight:checked').val(),
            result = rbtVal === 'VeryHigh' && weightVal === 'High' 
                     ? '5'
                     : rbtVal === 'VeryHigh' && weightVal === 'Low'
                         ? '4'
                         : '0';
        $wrap.find('.js-result').text(result)
    });
});
</script>

我最终可能还会创建一个 jQuery 插件来包含所有这些逻辑,因此在您的页面上它只是这样的调用:

jQuery(function ($) { 
    $('.js-weight-calc-wrap').weightCalculator({
        rbtSelector: '.js-rbt',
        weightSelector: '.js-weight',
        resultSelector: '.js-result'
    });
});

更新

我之前忘记了,当您选择单选按钮时,您需要对其进行过滤,以便您仅获得选中的按钮(与 <select/> 元素混淆)。添加:select后对于选择器来说,它按预期工作。我把它清理了一下,并创建了一个 working jsFiddle .

关于javascript - 合并两个独立函数的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10213299/

相关文章:

javascript - 将 ID 传递到 Bootstrap Modal 中?

c# - 只读文本框的服务器验证 - 防止输入值

javascript - jQuery-ajax 'on click event' 不工作

.net - Webapi 帮助页面 - 如何创建自定义数据?定义并指定需要什么?

javascript - 如何获取点击的html元素并进行编辑?

javascript - 如何在 ASP.NET 文本框中只允许信用卡/借记卡号码格式

javascript - event.timeStamp 至今

c# - 如何在 Silverlight 中创建客户端帮助程序类?

c# - 带有 CosmosDB 的 .NET Core 中的存储过程给出错误 500

javascript - jquery start() 函数未捕获错误