mvc4 jscript根据行数据多个值更改按钮标题

时间:2013-12-14 18:12:40

标签: javascript asp.net-mvc-4

许多JScript问题与点击时的更改有关,我需要对行数据做出反应。

我有一个包含多个行的表,这些行有3个日期值,可以为null并且是顺序的;开始,结束和认证。

我希望每行都有一个按钮,并且想要更改标题(也可能更改按钮值和行颜色(4))。按钮信息将告诉控制器哪个更新日期为“现在”。

我有这个未经测试的JScript:

function changeBname(SStart, SEnd, SCert)..and a similar function for the button value
{
  if(SStart == null) { 
    bname ="Start Step"; 
  }
  else  if (SEnd == null) {
    bname ="End Step";
  }
  else if SCert == null) { 
    bname ="Certify Step";
  }
   return
}

这个想法是,如果一行有开始日期和结束日期,那么按钮的标题将是“Certify Step”,如果所有日期都为空,则标题将为“Start Step”。等

5个问题; - 我是新手。
- 这是处理按钮的最佳方式吗?正确的概念?
- Jscript是否正确?
- 在表格行中如何引用该功能?我目前的尝试 -

<input type="button" name = changeBname(@item.SStart,@item.SEnd,@item.SCert) > 

给出一个带有标题-changeBname-而不是“End Step”的按钮。

- 我在哪里放置代码来改变颜色?
- 当foreach有行数据时,我可以使用哪些事件? (我的vb日期正在显示) -

由于

2 个答案:

答案 0 :(得分:0)

您应该在可用于选择器的3个不同日期字段上放置一个类。从这里开始How do I pre-populate a jQuery Datepicker textbox with today's date?

var myDate = new Date();
var prettyDate =(myDate.getMonth()+1) + '/' + myDate.getDate() + '/' +
    myDate.getFullYear();
$(document).ready(function () {      
   $('#resultTable tr').click(function () {
       if($(this).closest("td").find(".date1").val() != "")
       {
           $(this).closest("td").find(".date2").val(prettyDate);  
           $(this).closest("td").find(".btnClass").attr("Name", "End Step");        
       }
   });
});

这是表格行上的点击事件,而不仅仅是按钮,但希望这将为您提供所需的开始。如果您有任何问题,请与我联系。

答案 1 :(得分:0)

我能够让这个工作 在视图中创建此帮助程序:

@helper   specialbutton( System.DateTime? SStart, System.DateTime? SEnd, System.DateTime? SCert)
{  
if (SStart == null)
{ <input type = "button" name ="Start Step" value ="start step"> }
else if (SStart != null && SEnd == null)
{ <input type = "button" value ="End Step" > }
else if (SEnd != null && SCert == null)
{<input type = "button" value = "Start Step"> }
}

然后在我的表格行中:

@specialbutton( item.SStart, item.SEnd, item.SCert)

它有效,但请注意我已将值分配给标题。当我尝试name =“Start Step”value = 0时,标题为“0”而不是“Start Step”。只要这个值传递给我的控制器onclick我可以使用它,但我很好奇为什么名称不起作用。