さまざまなオプションを含むドロップダウンメニューがあります
- 新しい
- 進行中
- 順序付けられました
- 未注文
- 完了
- キャンセル
ステータスが新しいときに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");
}
}