我创建了一个应用程序。在应用程序中我经常使用javascript确认功能。
confirm("Do you want to proceed");
我不喜欢确认的默认用户界面。我想使用自定义确认和更好的UI。
问题:
我有一些自定义确认选项。但如果我将使用它们,我需要更改所有默认确认方法(需要进行大量更改)。
有没有办法在最小的变化中实现这一目标。
喜欢:
window.confrim = function() {
/*
What logic I should write which will return the
value(true or false) selected by user.
*/
}
我有一个JS文件,导入所有HTML文件。
所以我可以将上面的函数逻辑放在公共JS文件中。
答案 0 :(得分:5)
自定义 public static void Example()
{
DataTable dt = new DataTable();
dt.Columns.Add("Signal", typeof(int));
dt.Columns.Add("Date", typeof(DateTime));
dt.Rows.Add(1, DateTime.ParseExact("2015-03-02 11:23:25", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture));
dt.Rows.Add(1, DateTime.ParseExact("2015-03-02 18:24:03", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture));
dt.Rows.Add(1, DateTime.ParseExact("2015-03-03 05:38:49", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture));
dt.Rows.Add(0, DateTime.ParseExact("2015-03-03 08:47:02", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture));
dt.Rows.Add(1, DateTime.ParseExact("2015-03-03 14:01:31", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture));
dt.Rows.Add(1, DateTime.ParseExact("2015-03-03 21:11:53", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture));
dt.Rows.Add(1, DateTime.ParseExact("2015-03-04 09:34:04", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture));
dt.Rows.Add(0, DateTime.ParseExact("2015-03-04 15:29:27", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture));
dt.Rows.Add(0, DateTime.ParseExact("2015-03-04 19:28:33", "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture));
的最大问题是原生 var groups = dt.AsEnumerable().GroupBy(r => (int)r["Signal"]);
foreach (var group in groups)
{
int groupMinutes = 0;
var datesDescending = group.OrderByDescending(g => g["Date"]);
for (int i = 0; i < datesDescending.Count(); i += 2)
{
var date1 = (DateTime)datesDescending.ElementAt(i)["Date"];
if (datesDescending.Count() > i + 1)
{
var date2 = (DateTime)datesDescending.ElementAt(i + 1)["Date"];
var dateOffset = date1.Subtract(date2);
groupMinutes += dateOffset.Hours * 60 + dateOffset.Minutes;
}
else
groupMinutes += date1.Hour * 60 + date1.Minute;
}
Console.WriteLine("Signal: {0}, total minutes: {1}", group.Key, groupMinutes);
}
}
正在阻止。所以你可以写:
confirm
但是你自己的代码无法做到这一点。相反,您需要创建某种回调。一个例子可能是:
confirm
具体如何实现这一点取决于你 - 我实际上在我的项目中有一个更灵活的版本,我打电话给表格:
if( confirm("Continue?")) {
doStuff();
}
编写自己的东西很酷的一点是,随着项目的发展,你可以随意扩展它以满足你的需求。
答案 1 :(得分:0)
确认框是浏览器的一部分,而不是DOM。所以,它不可能修改它。您可以尝试自定义确认框,例如http://jqueryui.com/dialog/#modal-confirmation或