Во-первых, это неправильно:
<input type="submit" name="SubmitButton" value="Reset" />
<input type="submit" name="SubmitButton" value="OK" />
<input type="submit" name="SubmitButton" value="Back" />
Все три из них являются кнопками отправки. Сброс является входом типа = «сброс». Получите это отсортировано. Во-вторых, я успешно реализовал нечто подобное, и это работает на IE6. Попробуйте это:
function keypressHandler(e)
{
if(e.which == 13) {
e.preventDefault(); //stops default action: submitting form
$(this).blur();
$('#SubmitButton').focus().click();//give your submit an ID
}
}
$('#myForm').keypress(keypressHandler);
При фокусировке () кнопка кажется нажатой, когда пользователь нажимает кнопку ввода. Довольно изящно.
Я добавил бы некоторое дополнительное декодирование. Одна ошибка, с которой я столкнулся, является возвращаемым значением, было пустым. Я также заметил, что несколько ответов выше заменили '+' пространством.
ALTER FUNCTION UrlDecode(@url varchar(3072))
RETURNS varchar(3072)
AS BEGIN
DECLARE @count int,
@c char(1),
@cenc char(2),
@i int,
@urlReturn varchar(3072)
SET @count = Len(@url)
SET @i = 1
SET @urlReturn = ''
WHILE (@i <= @count) BEGIN
SET @c = substring(@url, @i, 1)
IF @c LIKE '[!%]' ESCAPE '!' BEGIN
SET @cenc = substring(@url, @i + 1, 2)
SET @c = CHAR(CASE WHEN SUBSTRING(@cenc, 1, 1) LIKE '[0-9]'
THEN CAST(SUBSTRING(@cenc, 1, 1) as int)
ELSE CAST(ASCII(UPPER(SUBSTRING(@cenc, 1, 1)))-55 as int)
END * 16 +
CASE WHEN SUBSTRING(@cenc, 2, 1) LIKE '[0-9]'
THEN CAST(SUBSTRING(@cenc, 2, 1) as int)
ELSE CAST(ASCII(UPPER(SUBSTRING(@cenc, 2, 1)))-55 as int)
END)
SET @urlReturn = @urlReturn + @c
SET @i = @i + 2
END ELSE BEGIN
SET @urlReturn = @urlReturn + @c
END
SET @i = @i +1
END
IF @urlReturn is null BEGIN
set @urlReturn = ''
END ELSE BEGIN
set @urlReturn = REPLACE(@urlReturn, '+', ' ')
END
RETURN @urlReturn
END
GO