Вы хотите, чтобы первый >
, которому не предшествовал /
. Посмотрите здесь , чтобы узнать, как это сделать.
Однако наивная реализация этого приведет к сопоставлению
в этом примере документа
Можете ли вы предоставить немного больше информации о проблема, которую вы пытаетесь решить? Вы выполняете итерацию через теги программно?
Они на самом деле строки не числа. Самый простой способ создать число из строки - это добавить его с помощью +
:
var x = +y + +z;
Вам не хватает преобразования типа во время шага добавления ... var x = y + z;
должно быть var x = parseInt(y) + parseInt(z);
<!DOCTYPE html>
<html>
<body>
<p>Click the button to calculate x.</p>
<button onclick="myFunction()">Try it</button>
<br/>
<br/>Enter first number:
<input type="text" id="txt1" name="text1">Enter second number:
<input type="text" id="txt2" name="text2">
<p id="demo"></p>
<script>
function myFunction()
{
var y = document.getElementById("txt1").value;
var z = document.getElementById("txt2").value;
var x = parseInt(y) + parseInt(z);
document.getElementById("demo").innerHTML = x;
}
</script>
</body>
</html>
<input type="text" name="num1" id="num1" onkeyup="sum()">
<input type="text" name="num2" id="num2" onkeyup="sum()">
<input type="text" name="num2" id="result">
<script>
function sum()
{
var number1 = document.getElementById('num1').value;
var number2 = document.getElementById('num2').value;
if (number1 == '') {
number1 = 0
var num3 = parseInt(number1) + parseInt(number2);
document.getElementById('result').value = num3;
}
else if(number2 == '')
{
number2 = 0;
var num3 = parseInt(number1) + parseInt(number2);
document.getElementById('result').value = num3;
}
else
{
var num3 = parseInt(number1) + parseInt(number2);
document.getElementById('result').value = num3;
}
}
</script>
, если у нас есть два поля ввода, затем получите значения из полей ввода, затем добавьте их с помощью javascript.
$('input[name="yourname"]').keyup(function(event) {
/* Act on the event */
var value1 = $(this).val();
var value2 = $('input[name="secondName"]').val();
var roundofa = +value2+ +value1;
$('input[name="total"]').val(addition);
});
Вам нужно использовать метод javaScript parseInt()
, чтобы вернуть строки в числа. Прямо сейчас они являются строками, поэтому добавление двух строк объединяет их, поэтому вы получаете «12».
parseInt()
- лучший вариант здесь, когда функция OP добавляет два введенных пользователем «числа», а не «целые числа».
– nnnnnn
24 January 2013 в 10:17
parseFloat
, если OP предоставит больше ввода.
– Yoshi
24 January 2013 в 10:25
parseInt()
возвращает только целые числа и не объясняет ни одного из parseInt()
'quirks & quot; - что может быть проблемой с введенными пользователем данными - я думал, что это стоит упомянуть. (Я фактически ничего не делал.
– nnnnnn
24 January 2013 в 10:42
<head>
<script type="text/javascript">
function addition()
{
var a = parseInt(form.input1.value);
var b = parseInt(form.input2.value);
var c = a+b
document.write(c);
}
</script>
</head>
<body>
<form name="form" method="GET">
<input type="text" name="input1" value=20><br>
<input type="text" name="input2" value=10><br>
<input type="button" value="ADD" onclick="addition()">
</form>
</body>
</html>
Это старый вопрос, но следующее может быть полезно в общих терминах.
+
с двумя значениями: он добавляет числа и объединяет строки. Он предпочитает конкатенацию, поэтому даже выражение, подобное 3+'4'
, будет рассматриваться как конкатенация. '2'*'3'
изменит оба типа на числа, поскольку вы не можете умножить строки. Если один из них несовместим, вы получите NaN
, а не номер. Ваша проблема возникает из-за того, что данные, поступающие из формы, рассматриваются как строка, а +
поэтому будет сцепляться, а не добавлять.
При чтении предположительно числовых данных из формы вы всегда должны проталкивать ее через parseInt()
или parseFloat()
, в зависимости от того, хотите ли вы целое или десятичное число.
Обратите внимание, что ни одна из функций по-настоящему не преобразует строку в число. Вместо этого он будет анализировать строку слева направо, пока она не вернется к недопустимому числовому символу или к концу и не конвертирует принятое. В случае parseFloat
, который включает одну десятичную точку, но не две.
Все, что после действительного числа просто игнорируется. Там, где они терпят неудачу, если строка даже не начинается с числа. Затем вы получите NaN
.
Хорошая техника общего назначения чисел из форм выглядит примерно так:
var data=parseInt(form['data'].value); // or parseFloat
Если вы готовы объединить недопустимую строку в 0, вы можете использовать:
var data=parseInt(form['data'].value) || 0;
Здесь идет ваш код, анализируя переменные в функции.
<html>
<body>
<p>Click the button to calculate x.</p>
<button onclick="myFunction()">Try it</button>
<br/>
<br/>Enter first number:
<input type="text" id="txt1" name="text1">
<br>Enter second number:
<input type="text" id="txt2" name="text2">
<p id="demo"></p>
<script>
function myFunction() {
var y = parseInt(document.getElementById("txt1").value);
var z = parseInt(document.getElementById("txt2").value);
var x = y + z;
document.getElementById("demo").innerHTML = x;
}
</script>
</body>
</html>
Ответ
попробуйте это
<!DOCTYPE html>
<html>
<body>
<p> Add Section </p>
<label>First No :</label>
<input id="txt1" type="text"/><br />
<label>Second No :</label>
<input id="txt2" type="text"/><br />
<input type="button" name="Add" value="Add" onclick="addTwoNumber()"/>
<p id="demo"></p>
<script>
function myFunction() {
document.getElementById("demo").innerHTML = Date();
}
function addTwoNumber(){
var a = document.getElementById("txt1").value;
var b = document.getElementById("txt2").value;
var x = Number(a) + Number(b);
document.getElementById("demo").innerHTML = "Add Value: " + x;
}
</script>
</body>
</html>
Простой
var result = parseInt("1") + parseInt("2");
console.log(result ); // Outputs 3
Вы также можете написать: var z = x - -y; И вы получите правильный ответ.
<body>
<input type="text" id="number1" name="">
<input type="text" id="number2" name="">
<button type="button" onclick="myFunction()">Submit</button>
<p id="demo"></p>
<script>
function myFunction() {
var x, y ;
x = document.getElementById('number1').value;
y = document.getElementById('number2').value;
var z = x - -y ;
document.getElementById('demo').innerHTML = z;
}
</script>
</body>
Используйте parseFloat
, он преобразует строку в число, включая десятичные значения.
function myFunction() {
var y = document.getElementById("txt1").value;
var z = document.getElementById("txt2").value;
var x = parseFloat(y) + parseFloat(z);
document.getElementById("demo").innerHTML = x;
}
<p>
Click the button to calculate x.
<button onclick="myFunction()">Try it</button>
</p>
<p>
Enter first number:
<input type="text" id="txt1" name="text1" value="1">
Enter second number:
<input type="text" id="txt2" name="text2" value="2">
</p>
<p id="demo"></p>
Вы можете сделать предварительную проверку с регулярным выражением, являются ли они номерами как
function myFunction() {
var y = document.getElementById("txt1").value;
var z = document.getElementById("txt2").value;
if((x.search(/[^0-9]/g) != -1)&&(y.search(/[^0-9]/g) != -1))
var x = Number(y)+ Number(z);
else
alert("invalid values....");
document.getElementById("demo").innerHTML = x;
}
Я просто использую Number()
:
var i=2;
var j=3;
var k = Number(i) + Number(j); // 5
Этот код суммирует обе переменные! Поместите его в свою функцию
var y = parseInt(document.getElementById("txt1").value);
var z = parseInt(document.getElementById("txt2").value);
var x = (y +z);
document.getElementById("demo").innerHTML = x;`
Привет, друзья, очень просто
<html>
<body>
<p>Click the button to calculate x.</p>
<button onclick="myFunction()">Try it</button>
<br/>
<br/>Enter first number:
<input type="text" id="txt1" name="text1">Enter second number:
<input type="text" id="txt2" name="text2">
<p id="demo"></p>
<script>
function myFunction() {
var y = document.getElementById("txt1").value;
var z = document.getElementById("txt2").value;
var x = +y + +z;
document.getElementById("demo").innerHTML = x;
}
</script>
Это не суммирует число, вместо этого оно будет конкатенировать его:
var x = y + z;
Что вам нужно сделать:
var x = (y)+(z);
Вы должны использовать parseInt в чтобы указать операцию по номерам. Пример:
var x = parseInt(y) + parseInt(z); [final soulution, as everything us]
boss просто добавляет простой метод литья, поскольку ввод выполняется при использовании текста после
var y = parseInt(document.getElementById("txt1").value);
var z = parseInt(document.getElementById("txt2").value);
var x = y + z;
Используйте parseInt (...) , но убедитесь, что вы указали значение радиуса; в противном случае вы столкнетесь с несколькими ошибками (если строка начинается с «0», радиус - восьмеричный / 8 и т. д.).
var x = parseInt(stringValueX, 10);
var y = parseInt(stringValueY, 10);
alert(x + y);
Надеюсь, что это поможет!
parseInt()
- лучший вариант здесь, когда функция OP добавляет два введенных пользователем «числа», а не «целые числа».
– nnnnnn
24 January 2013 в 10:16
parseInt("012")
отлично работает, возвращаясь 12. Конечно, вам все равно нужно соблюдать такие вещи, как [1,2].map(parseInt)
.
– user
23 September 2016 в 19:07
+
-prefix со строками? – Sebastian Mach 24 January 2013 в 10:10