【问题标题】:Can this Javascript function be re-written in jQuery? [closed]这个 Javascript 函数可以用 jQuery 重写吗? [关闭]
【发布时间】:2013-01-23 09:01:37
【问题描述】:

我有一个与 Cold Fusion 集成的遗留 JS 函数,用于输出包含在 if 语句中的第 n 个 ID 表单字段。有时输出非常高,看起来非常多余和麻烦。我在想一个 for 循环可以解决这个问题,但不确定解决它的正确方法。下面是来自示例输出的遗留代码。任何帮助表示赞赏:

function checkFinalDisposition(){
if (document.getElementById("mrostatus").value == "Completed"){


    var checkfinal = document.getElementById("finaldisposition").value
    if (checkfinal == 'NEGATIVE' || checkfinal == 'NEGATIVE DILUTE'){
        var checkfinalpass = 'Yes'

        if (document.getElementById("id4735721").value != 'NEGATIVE' || document.getElementById("id4735721").value != 'NEGATIVE DILUTE'){
            var checkfinalpass = 'No'
        }
        if (document.getElementById("id4735722").value != 'NEGATIVE' || document.getElementById("id4735722").value != 'NEGATIVE DILUTE'){
            var checkfinalpass = 'No'
        }
        if (document.getElementById("id4735723").value != 'NEGATIVE' || document.getElementById("id4735723").value != 'NEGATIVE DILUTE'){
            var checkfinalpass = 'No'
        }
        if (document.getElementById("id4735724").value != 'NEGATIVE' || document.getElementById("id4735724").value != 'NEGATIVE DILUTE'){
            var checkfinalpass = 'No'
        }
        if (document.getElementById("id4735725").value != 'NEGATIVE' || document.getElementById("id4735725").value != 'NEGATIVE DILUTE'){
            var checkfinalpass = 'No'
        }
        if (document.getElementById("id4735726").value != 'NEGATIVE' || document.getElementById("id4735726").value != 'NEGATIVE DILUTE'){
            var checkfinalpass = 'No'
        }
        if (document.getElementById("id4735727").value != 'NEGATIVE' || document.getElementById("id4735727").value != 'NEGATIVE DILUTE'){
            var checkfinalpass = 'No'
        }
    }
    else{
        var checkfinalpass = 'No'
        //Multiple IF's from drug query

        if (document.getElementById("id4735721").value == checkfinal){
            var checkfinalpass = 'Yes'
        }

        if (document.getElementById("id4735722").value == checkfinal){
            var checkfinalpass = 'Yes'
        }

        if (document.getElementById("id4735723").value == checkfinal){
            var checkfinalpass = 'Yes'
        }

        if (document.getElementById("id4735724").value == checkfinal){
            var checkfinalpass = 'Yes'
        }

        if (document.getElementById("id4735725").value == checkfinal){
            var checkfinalpass = 'Yes'
        }

        if (document.getElementById("id4735726").value == checkfinal){
            var checkfinalpass = 'Yes'
        }

        if (document.getElementById("id4735727").value == checkfinal){
            var checkfinalpass = 'Yes'
        }

    }

    if (checkfinalpass != 'Yes'){
        var inputfinaldisposition = 'NEGATIVE'
        //Multiple IF's from drug query

        if (document.getElementById("id4735721").value == ""){
            document.getElementById("id4735721").value = "POSITIVE";
        }
        if ((inputfinaldisposition == 'NEGATIVE' || inputfinaldisposition == 'NEGATIVE DILUTE') && (document.getElementById("id4735721").value != 'NEGATIVE' || document.getElementById("id4735721").value != 'NEGATIVE DILUTE')){
        var inputfinaldisposition = document.getElementById("id4735721").value
        }

        if (document.getElementById("id4735722").value == ""){
            document.getElementById("id4735722").value = "POSITIVE";
        }
        if ((inputfinaldisposition == 'NEGATIVE' || inputfinaldisposition == 'NEGATIVE DILUTE') && (document.getElementById("id4735722").value != 'NEGATIVE' || document.getElementById("id4735722").value != 'NEGATIVE DILUTE')){
        var inputfinaldisposition = document.getElementById("id4735722").value
        }

        if (document.getElementById("id4735723").value == ""){
            document.getElementById("id4735723").value = "NEGATIVE";
        }
        if ((inputfinaldisposition == 'NEGATIVE' || inputfinaldisposition == 'NEGATIVE DILUTE') && (document.getElementById("id4735723").value != 'NEGATIVE' || document.getElementById("id4735723").value != 'NEGATIVE DILUTE')){
        var inputfinaldisposition = document.getElementById("id4735723").value
        }

        if (document.getElementById("id4735724").value == ""){
            document.getElementById("id4735724").value = "NEGATIVE";
        }
        if ((inputfinaldisposition == 'NEGATIVE' || inputfinaldisposition == 'NEGATIVE DILUTE') && (document.getElementById("id4735724").value != 'NEGATIVE' || document.getElementById("id4735724").value != 'NEGATIVE DILUTE')){
        var inputfinaldisposition = document.getElementById("id4735724").value
        }

        if (document.getElementById("id4735725").value == ""){
            document.getElementById("id4735725").value = "NEGATIVE";
        }
        if ((inputfinaldisposition == 'NEGATIVE' || inputfinaldisposition == 'NEGATIVE DILUTE') && (document.getElementById("id4735725").value != 'NEGATIVE' || document.getElementById("id4735725").value != 'NEGATIVE DILUTE')){
        var inputfinaldisposition = document.getElementById("id4735725").value
        }

        if (document.getElementById("id4735726").value == ""){
            document.getElementById("id4735726").value = "NEGATIVE";
        }
        if ((inputfinaldisposition == 'NEGATIVE' || inputfinaldisposition == 'NEGATIVE DILUTE') && (document.getElementById("id4735726").value != 'NEGATIVE' || document.getElementById("id4735726").value != 'NEGATIVE DILUTE')){
        var inputfinaldisposition = document.getElementById("id4735726").value
        }

        if (document.getElementById("id4735727").value == ""){
            document.getElementById("id4735727").value = "NEGATIVE";
        }
        if ((inputfinaldisposition == 'NEGATIVE' || inputfinaldisposition == 'NEGATIVE DILUTE') && (document.getElementById("id4735727").value != 'NEGATIVE' || document.getElementById("id4735727").value != 'NEGATIVE DILUTE')){
        var inputfinaldisposition = document.getElementById("id4735727").value
        }

        var answer = confirm("Please advise the Final Disposition does not match your individual results!\n\nPress \"OK\" to change Final Disposition to "+inputfinaldisposition)

        if (answer){
            document.getElementById("finaldisposition").value = inputfinaldisposition;
            return true;
        }
        else{
            return false
        }
    }
}
}

【问题讨论】:

  • jQuery 是 JavaScript。但是,您可能会使用 jQuery 甚至是普通的旧 javascript 函数来缩短一些代码。
  • 回答这个问题:是的。

标签: javascript jquery


【解决方案1】:

我会有一个你正在检查的 ids 的 js 数组,

idToCheck = ['id4735721', 'id4735722', ...];

然后在 for 循环中比较它们。

for(id in idToCheck){
      if($('#'+idToCheck[id]).val() != 'NEGATIVE' || if($('#'+idToCheck[id]).val() != 'NEGATIVE DILUTE'){
            checkfinalpass = 'No';
      }
}

我没有重做您的整个代码,但希望这会为您指明正确的方向。

【讨论】:

  • "js object of ids" 这实际上是一个数组,但是是的,这会缩短它并使其更易于维护。
  • 你是对的,会解决的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 2010-11-07
  • 1970-01-01
  • 2018-03-19
相关资源
最近更新 更多