Javascript 在不重复代码的情况下将数据传递给另一个函数

Javascript 在不重复代码的情况下将数据传递给另一个函数,javascript,jquery,function,Javascript,Jquery,Function,我有一些服务的带有输入字段的表单,现在我很难将数据从传递到函数 此表单接受数字,此数字乘以以获得总价,但某些输入可以为0 我在globals中声明以从输入中获取值 var cleaning_size; var bathroom_number; $( ".needs-validation" ).on( "change", "input", function() { cleaning_size = $("#cleaning-size").val(); bathroom_numbe

我有一些服务的带有输入字段的表单,现在我很难将数据从传递到函数

此表单接受数字,此数字乘以以获得总价,但某些输入可以为0

我在globals中声明以从输入中获取值

var cleaning_size;
var bathroom_number;

 $( ".needs-validation" ).on( "change", "input", function() {
    cleaning_size = $("#cleaning-size").val();
    bathroom_number = $("#bathroom-numbers").val();
})
在我的表格中有datepicker,你选择了date,但是如果选择了sunday,价格计算就不同了

$("#datepicker").datepicker({
    changeMonth: true,
    onSelect: function (selectedDate) {
        var date = $(this).datepicker('getDate');
        var day = date.getUTCDay();
        if (day == '6') {
            price_cleaning_size = 1.5;
            price_bathroom_number = 26;
        } else {
            price_cleaning_size = 1.2;
            price_bathroom_number = 24;
        }
    }
});
然后我在不同的函数中计算总数:

function calculate_total_value(){
  var cleaning_size_price = cleaning_size * price_cleaning_size;
  var bathromm_number_price = bathroom_number * price_bathroom_number;

  var total_price = cleaning_size_price + bathromm_number_price;
    $('#total-price strong').text(total_price).val();
}
现在我有一个问题,如果选择的日期是6,如何从datepicker获取数据,以获得1.5或1.2来计算总价

我找不到任何类似的例子如何做到这一点

此外,我将有什么样的时间选择器将在函数内,我将需要从那里得到的价值


那么如何正确地传递值呢?

尝试修改您的函数(
计算总值()
),使其接受两个参数-这两个参数是您根据所选日期修改的值

(同时也要检查诸如bathromm_number_price之类的打字错误——它们可能需要很多时间才能在以后“找到”。)

jQuery(文档).ready(函数($){
真空吸尘器尺寸;
var/U编号;
$(“.needs validation”)。关于(“更改”、“输入”,函数(){
清洁尺寸=$(“#清洁尺寸”).val();
浴室号码=$(“#浴室号码”).val();
})
$(“#日期选择器”)。日期选择器({
变化月:对,
onSelect:函数(selectedDate){
var date=$(this.datepicker('getDate');
var day=date.getUTCDay();
如果(天=='6'){
价格\清洁\尺寸=1.5;
价格\浴室\数量=26;
}否则{
价格\清洁\尺寸=1.2;
价格\浴室\编号=24;
}
//在此处调用函数,将值作为参数传递
计算总价值(价格、清洁尺寸、价格、浴室数量)
}
});
//更改您的函数,使其接受两个参数(price\u cleaning\u size、price\u浴室\u number)
函数计算\总\值(价格\清洁\尺寸、价格\浴室\编号){
var cleaning\u size\u price=cleaning\u size*price\u cleaning\u size;
var bathromm\u编号\u价格=浴室编号*价格\u浴室编号;
var总价格=清洁尺寸价格+浴室数量价格;
$(“#总价强”).text(总价).val();
}
})

清洁尺寸:
浴室号码:
0
日期:

  • price\u cleaning\u size、price\u浴室\u number
    不在任何地方声明。 建议声明变量。(使用
    时必须使用strict
    )。在全球范围内申报

  • 在调用函数
    calculate\u total\u value()
    的地方不可用。 最好在datepicker的onSelect回调的底部调用它

    $("#datepicker").datepicker({
    changeMonth: true,
    onSelect: function (selectedDate) {
        var date = $(this).datepicker('getDate');
        var day = date.getUTCDay();
        if (day == '6') {
            price_cleaning_size = 1.5;
            price_bathroom_number = 26;
        } else {
            price_cleaning_size = 1.2;
            price_bathroom_number = 24;
        }
        calculate_total_value();
    
    }}))

当您的变量范围是全局的时,就不需要作为参数传递给函数。希望有理由在全球宣布


希望这能帮助您……

尝试在
if/else