1

さまざまなオプションを含むドロップダウンメニューがあります

  • 新しい
  • 進行中
  • 順序付けられました
  • 未注文
  • 完了
  • キャンセル

ステータスが新しいときにETA行を非表示にしてから、他のステータスに対して有効にする必要があるフォームがあります。これは私が試したものです:

var progress, ordered, unordered, completed, cancelled, reg, high, user, trimUser, etaDate, etaRow, etaHour, etaMinutes;

function initiate() {
    //declaring necessary variables
    declaration()
}

function declaration(){
    //Declaration of variables for status changes
    sNew = $("option[value='New']");
    progress = $("option[value='In Progress']");
    ordered = $("option[value='Ordered']");
    unordered = $("option[value='Unordered']");
    completed = $("option[value='Completed']");
    cancelled = $("option[value='Cancelled']");

    //Declaring variables for priority changes
    reg = $('input[value="ctl00"]');
    high = $('input[value="ctl01"]');

    //Declaring current user using SPServices 
    user = $().SPServices.SPGetCurrentUser({
    fieldName: "Name",
    debug: false
    });

    //Declaring variables for ETA field manipulation
    etaRow = $("nobr").filter(function () { return $.trim(this.childNodes[0].nodeValue) === "ETA"; }).closest("tr");
    etaDate = $('input[title="ETA"]');
    etaHour = $("[id$=DateTimeFieldDateHours]");
    etaMinutes = $("[id$=DateTimeFieldDateMinutes]");

}

function hideETA(){
    //hide ETA options
    etaRow.hide();

    if(sNew.not(:checked)){
        alert('CP1');
        eta.show();
    }
}

だから私がそれをやろうとした方法は、最初はそれを隠して(新しいものがデフォルトであるため)、それが新しいものではないときにそれを表示することでした。

編集: 私はそれを解決したと思います.これは、ifステートメントとセレクターを使用して@Richardから助けられた後、私がそれを行った方法です:

function setETA(){
    //Hide, Display and Disable ETA based on stages         
    if(sNew.is(":checked")){
        etaRow.hide();
    }else if (progress.is(":checked")){
        //do nothing, should be already showing
    }else{
        etaDate.attr("readonly","true").css('background-color','#F6F6F6');
        etaHour.attr("disabled","disabled");
        etaMinutes.attr("disabled","disabled");
    }
}
4

1 に答える 1