Javascript - 基于下拉选项和复选框的操作

时间:2014-03-20 06:10:42

标签: javascript html checkbox

编辑:解决:

getMonth() - 1,0);


编辑:以下尝试确实有效,只是遗漏了一些变量。现在我只需转换以下部分即可获得上一个/当前月的最后一天

if(option=="LastMonth"){
  datestart = new Date(today.getFullYear(), today.getMonth()-1, 1);
  dateend = new Date(today.getFullYear(), today.getMonth(), 1);
} else if(option=="ThisMonth"){
  datestart = new Date(today.getFullYear(), today.getMonth(), 1);
  dateend = new Date(today.getFullYear(), today.getMonth() + 1, 1);

我希望对你们来说是一个相对直截了当的人。不幸的是,对我来说不是那么直接。

我有一个现有的java脚本,它与我拥有的一组复选框一起使用。它非常简单,如果选中一个复选框并单击提交,则javascript函数将使用复选框输入值打开URL链接。如果勾选多个框并单击“提交”,则所有链接都会同时打开。代码非常有效。

我现在要做的是合并一个包含日期范围的选择列表,即上个月,本月,1月,2月,3月,4月到12月....我需要做的是例如,如果我选择"上个月"然后勾选一个复选框并提交它应该打开输入值中的链接+"?pv0 ="上个月的第一天+"& pv1 ="上个月的最后一天

结果完整链接的示例如下: na6.salesforce.com/00O80000004z1VC?pv0=01/01/2014&pv1=01/31/2014

我在复选框输入值中的链接就像这样 na6.salesforce.com/00O80000004z1VC

每个复选框都有一个唯一值,但是,基本域始终是相同的na6.salesforce.com /

日期顺序应为mm / dd / yyyy

这是我当前的Javascript代码(我需要将选择列表合并到其中):

<script type="text/javascript">

function submit()
{
//alert("i am in");
var data = document.forms[0].sfdcbox;
var i;
for (i=0;i<data.length;i++)
 {
if (data[i].checked)
{
window.open(""+data[i].value);
}
}
}

</script>
enter code here

<form method="POST">
<input type="checkbox" name="sfdcbox" value="na6.salesforce.com/00O80000004z0VQ?csv=1"><label>Cases Closed & Avg</label><br/>
<input type="checkbox" name="sfdcbox" value="na6.salesforce.com/00O80000004z0WY?csv=1"><label>Emails Sent</label><br/>
<input type="checkbox" name="sfdcbox" value="na6.salesforce.com/00O80000004z0WO?csv=1"><label>Activities</label><br/>
<input type="checkbox" name="sfdcbox" value="na6.salesforce.com/00O80000004z0XC?csv=1"><label>KB Linking</label><br/>
</form>
<input type="button" value="Run" onclick="submit()">

The Select Field
Select Report Period: 
<select name="sfdcfilter" id="Range" style="width:130px">
<option value="LastMonth">Last Month</option>
<option value="ThisMonth">This Month</option>
<option value="0">January</option>
<option value="1">February</option>
<option value="2">March</option>
<option value="3">April</option>
<option value="4">May</option>
<option value="5">June</option>
<option value="6">July</option>
<option value="7">August</option>
<option value="8">September</option>
<option value="9">October</option>
<option value="10">November</option>
<option value="11">December</option>
</select>

这是我对脚本失败的尝试

<script type="text/javascript">

function submit()
{

var option=document.getElementById('Range').value;
if(option=="LastMonth"){
  datestart = new Date(today.getFullYear(), today.getMonth()-1, 1);
  dateend = new Date(today.getFullYear(), today.getMonth(), 1);
 } else if(option=="ThisMonth"){
 datestart = new Date(today.getFullYear(), today.getMonth(), 1);
 dateend = new Date(today.getFullYear(), today.getMonth() + 1, 1);
    } else {
  if (option > today.getMonth()) { 
    year = today.getFullYear() - 1;
  } else {
    year = today.getFullYear();
  }
  datestart = new Date(year, option, 1);
  dateend = new Date(year, parseInt(option) + 1, 1);
}

start = ('0' + (datestart.getMonth()+1)).slice(-2) + '-' + ('0' + datestart.getDate()).slice(-2) + '-' + datestart.getFullYear();
end =  ('0' + (dateend.getMonth()+1)).slice(-2) + '-' + ('0' + dateend.getDate()).slice(-2) + '-' + dateend.getFullYear();

//alert("i am in");
var data = document.forms[0].sfdcbox;
var i;
for (i=0;i<data.length;i++)
  {
  if (data[i].checked)
    {
    window.open(""+data[i].value + "&pv0=" + start + "&pv1=" + end);
   }
  }
}

</script>

1 个答案:

答案 0 :(得分:0)

您可以使用.value获取<select><input>的值。然后根据需要将琴弦放在一起。