Вот реализация Java-задачи.
package DP;
import java.util.Arrays;
import java.util.Comparator;
public class BuildingBridges {
public static void main(String[] args) {
Pair[] A = new Pair[7];
A[0] = new Pair(22,4);
A[1] = new Pair(2,6);
A[2] = new Pair(10,3);
A[3] = new Pair(15,12);
A[4] = new Pair(9,8);
A[5] = new Pair(17,17);
A[6] = new Pair(4,2);
System.out.println(lis(A));
}
public static int lis(Pair[] A){
Arrays.sort(A, new Comparator<Pair>() {
@Override
public int compare(Pair o1, Pair o2) {
return o1.x - o2.x;
}
});
int n = A.length;
int max = 0;
int[] dp = new int[n];
Arrays.fill(dp, 1);
for(int i=1; i<n; i++){
for(int j=0; j<i; j++){
if(A[i].y > A[j].y){
dp[i] = Math.max(dp[i], dp[j]+1);
}
}
max = Math.max(max, dp[i]);
}
return max;
}
public static class Pair{
int x, y;
public Pair(int x_, int y_){
x = x_;
y = y_;
}
}
}
Если это реальная проблема и вы не можете найти другое решение, вы всегда можете выполнить событие onkeypress
для формы и проверить, Была нажата клавиша Enter .
РЕДАКТИРОВАТЬ: Вот правильный код в соответствии с ответом машины:
$htmlForm .= ':<form><label>'.$ACL_LANG['USERNAME'].'</label>'.
'<input type="text" name="u" id="u" class="textfield" />'.
'<label>'.$ACL_LANG['PASSWORD'].'</label>'.
'<input type="password" name="p" id="p" class="textfield" />'.
'<center><input type="submit" name="btn" id="btn" class="buttonfield" value="Sign in to extranet" /></center>'.
'</form>';
ИЗМЕНИТЬ 2: Ваш HTML действителен. Попробуйте это :
function checkEnter(e) { //e is event object passed from function invocation
var characterCode //literal character code will be stored in this variable
if (e && e.which) { //if which property of event object is supported (NN4)
e = e
characterCode = e.which //character code is contained in NN4's which property
}
else {
e = event
characterCode = e.keyCode //character code is contained in IE's keyCode property
}
if (characterCode == 13) { //if generated character code is equal to ascii 13 (if enter key)
document.forms[0].submit() //submit the form
return false
}
else {
return true
}
}
Вот ссылка в Microsoft, которая может пролить свет на вас.
Беглое прочтение ссылки может на самом деле считаться ошибкой при отправке формы с помощью клавиши ввода, которая, как я полагаю, была исправлена Microsoft для IE8.
Аномалия IE при использовании клавиши ввода для отправки form
Редактировать:
Теперь это удалено, но есть еще одна ссылка , которая снова закрывает (внизу страницы), которая определяет это и объясняет ошибку в блоге IE 18 декабря 2008 г. .
У вас есть тег открывающей формы, который был просто пропущен из фрагмента кода?
Атрибут action
в элементе form
требуется спецификацией HTML. Может, так получится.
Также обратите внимание на эту забавную забавную ошибку:
Я на собственном опыте узнал, что если ваша форма display: none
при загрузке страницы, даже если вы покажите это позже с помощью Javascript, IE8 по-прежнему не отправляется при входе.
Однако, если он не скрыт при загрузке страницы, и вы установите для него display: none
после, например, onDOMReady, то он работает! WTF
Подробнее и обходной путь здесь: http://www.thefutureoftheweb.com/blog/submit-a-form-in-ie-with-enter
Я также смог воспроизвести это с помощью действия и метода. Удалил весь остальной код на странице, и он все еще создается. Однако я видел, как в IE8 формы работают с action = ""