Это решение, используемое мной и работающее очень хорошо:
// prevent enter key on some elements to prevent to submit the form
function stopRKey(evt) {
evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
var alloved_enter_on_type = ['textarea'];
if ((evt.keyCode == 13) && ((node.id == "") || ($.inArray(node.type, alloved_enter_on_type) < 0))) {
return false;
}
}
$(document).ready(function() {
document.onkeypress = stopRKey;
// catch the id of submit button and store-it to the form
$("form").each(function() {
var that = $(this);
// define context and reference
/* for each of the submit-inputs - in each of the forms on
the page - assign click and keypress event */
$("input:submit,button", that).bind("click keypress", function(e) {
// store the id of the submit-input on it's enclosing form
that.data("callerid", this.id);
});
});
$("#form1").submit(function(e) {
var origin_id = $(e.target).data("callerid");
alert(origin_id);
e.preventDefault();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form id="form1" name="form1" action="" method="post">
<input type="text" name="text1" />
<input type="submit" id="button1" value="Submit1" name="button1" />
<button type="submit" id="button2" name="button2">
Submit2
</button>
<input type="submit" id="button3" value="Submit3" name="button3" />
</form>
Способ, которым блокировки окон открытые файлы могли бы вызвать проблему, требующую, чтобы Вы сцепляли в Объем Сервис Shadowcopy.
Приблизительно два года назад этот товарищ портировал алгоритм к C#. Я не смотрел на код (или обеспеченный двоичный файл), но это могло бы быть место, чтобы начать смотреть или кто-то, чтобы попытаться связаться.
http://www.russiantequila.com/wordpress/?p=8
(отказ от ответственности: я обещаю, я не гуглил сам, но Google Analytics привел меня сюда)
Я прошел через перенос rsync на .net ( Ссылка sig11 - это мой блог). нет никаких технических препятствий, только практические. как уже было сказано, код довольно ... плотный. сложно следить, и полное отсутствие комментариев. Я более чем счастлив сделать свою работу доступной, но, к сожалению, поскольку она была частью коммерческих усилий, она не в лучшем состоянии.
В ряде случаев мне приходилось возиться с идеей реверс-инжиниринга протокола и создания базовой реализации, совместимой с существующим протоколом, но ... немного чище для работы. Я даже начал вики по этому поводу, но ... как вы можете видеть по нехватке содержимого, другой элемент имеет приоритет. Если кто-то захочет поработать со мной над этим, это может быть стимулом, который мне нужен, чтобы начать работу.
концепция инструмента великолепна, как и предлагаемые им функциональные возможности, однако он довольно ограничен за пределами пространства * ix и определенно может получить выгоду от api.
ссылка на вики для справки:
http://www.russiantequila.com/wiki/index.php?title=Main_Page
Имейте Вас замеченный это:
http://www.itefix.no/i2/taxonomy/term/39
Я использовал cwrsync без любой проблемы (и с большой частью обычного cygwin страдания), но у меня не было потребности в unicode именах файлов, таким образом, я не видел той проблемы.
Я действительно не знаю, почему нет собственного порта Win32, но я действительно смотрел на источник некоторое время назад, потому что я реализовал подобную систему копии дельты в C#. Как можно было бы ожидать от мира бриллианта *, отклоняют хакеров, источник является в основном односимвольными именами переменной и общим отсутствием комментариев, которое не является ужасно полезный и могло бы быть довольно нерасполагающим потенциальным носильщикам.
Я оценивал усилие предпринять win32 порт также. Я не полагаю, что что-либо главное заблокировало бы его, но доказательство и из rsync списка рассылки и из другого предметы обсуждения к сильной зависимости от ветвления Unix () системные вызовы. Используя потоки появляется способ пойти для win32.
Я был бы очень признателен за перенос rsync на MS-Windows, чтобы его можно было собрать с помощью Visual Studio. Я случайно и периодически сталкиваюсь с различными ошибками протокола. Я использую rsync для распределения sw в сетке из примерно 200 машин и обычно получаю около дюжины сбоев. Я использую GCC 4.4.2 и последнюю версию cygwin для сборки rsync v3.0.7. Мне бы очень помогло, если бы я мог поэкспериментировать с версией, не требующей cygwin. Это связано с тем, что на машинах в сетке уже запущено другое приложение на основе cygwin, версия которого отличается от той, которая есть у меня.
Проведя некоторое время в списке рассылки rsynv, мнения о причинах ошибок протокола в MS-Windows разделились. Некоторые говорят, что это ошибка в rsync, из-за которой не удалось полностью завершить работу сокета, ошибка, которая была исправлена некоторое время назад. Другие говорят, что это фундаментальная ошибка протокола в rsync, когда клиент не сообщает серверу, что он завершен, он просто выключается, в результате чего серверы MW-windows получают сигнал RST на сокете, чего не происходит в Unix. .