为什么jqueryif条件不';不行?

为什么jqueryif条件不';不行?,jquery,conditional-statements,Jquery,Conditional Statements,我试图通过将获得的分数除以*100/totalmarks,在第三个文本框中显示值; 但我无法做到这一点 $(document).ready(function () { $("#TextBoxTotalMarks, #TxBx_MarksObtained").keyup(function () { var a = parseInt($("#TextBoxTotalMarks").val(), 10);

我试图通过将获得的分数除以*100/totalmarks,在第三个文本框中显示值; 但我无法做到这一点

        $(document).ready(function () {
            $("#TextBoxTotalMarks, #TxBx_MarksObtained").keyup(function () {
                var a = parseInt($("#TextBoxTotalMarks").val(), 10);
                var b = parseInt($("#TxBx_MarksObtained").val(), 10);
                var c;
                if (a < b) {
                   c = "sorry not accepted";
                }
                else {
                   c = ((b * 100) / a).toFixed(2);
                }
                $("#TextBoxMarksInPercent").val(c);
            });
        });
$(文档).ready(函数(){
$(“#TextBoxTotalMarks,#TxBx_marks已保留”).keyup(函数(){
var a=parseInt($(“#TextBoxTotalMarks”).val(),10);
var b=parseInt($(“#TxBx_marksotained”).val(),10);
var c;
if(a
当我在total marks文本框中键入100,在marks Acquired文本框中键入300时,我没有看到消息“抱歉,未接受”



也许您还想将事件处理程序附加到
#TextBoxTotalMarks

    $("#TextBoxTotalMarks, #TxBx_MarksObtained").keyup(function () {
       ~~~~~~~~~~~~~~~~~~


如果您仍然遇到问题,则始终可以设置断点并检查
a
b
的结果。正如所解释的,问题很可能是字符串比较问题。

也许您还想将事件处理程序附加到
#TextBoxTotalMarks

    $("#TextBoxTotalMarks, #TxBx_MarksObtained").keyup(function () {
       ~~~~~~~~~~~~~~~~~~

如果您仍然遇到问题,则始终可以设置断点并检查
a
b
的结果。正如所解释的,问题很可能是字符串比较问题。

您在这里遇到了问题:

$("#TxBx_MarksObtained, #TxBx_MarksObtained")
//--^^^^-----------------^^^^-------------------using same selector twice.
我认为这应该是:

 $("#TxBx_MarksObtained, #TextBoxTotalMarks").keyup(function () {
这对我很有用:您在这里遇到了问题:

$("#TxBx_MarksObtained, #TxBx_MarksObtained")
//--^^^^-----------------^^^^-------------------using same selector twice.
我认为这应该是:

 $("#TxBx_MarksObtained, #TextBoxTotalMarks").keyup(function () {
这对我来说很有用:更新:(从您显示标记开始)

问题是,您提供的
asp:TextBox
ID
不是它的客户端ID。要获得它,您需要使用它,例如:

然后你可能想稍微改变一下你的状况:

if (isNaN(a) || isNaN(b) || a < b) {
或者,如果您想改用
name
,请将选择器的格式更改为
input[name=“TextBoxTotalMarks”]
或类似格式

这两种方法都适用:|(不过我认为您的计算有问题)

更新:(在您显示标记时)

问题是,您提供的
asp:TextBox
ID
不是它的客户端ID。要获得它,您需要使用它,例如:

然后你可能想稍微改变一下你的状况:

if (isNaN(a) || isNaN(b) || a < b) {
或者,如果您想改用
name
,请将选择器的格式更改为
input[name=“TextBoxTotalMarks”]
或类似格式


这两种方法都适用:|(我认为您的计算有问题)

@DotNetDreamer:
NaN
是JavaScript的“非数字”值。如果对无法解析为数字的内容使用
parseInt
,则得到的结果是
NaN
<例如,code>parseInt(“foo”,10)
isNaN(a)
检查
a
是否为
NaN
@DotNetDreamer检查
$(“#TextBoxTotalMarks”).val()
$(“#TxBx_marks tained”).val()
在javascript中有值吗?@DotNetDreamer:我添加了另一种可能性(使用
id
,在这里您可能使用
name
)。基本上,上面的方法是有效的。我正在使用id,请参见中的htmlquestion@DotNetDreamer:事实上,你不是。请参阅更新的答案。@DotNetDreamer:
NaN
是JavaScript的“非数字”值。如果对无法解析为数字的内容使用
parseInt
,则得到的结果是
NaN
<例如,code>parseInt(“foo”,10)
isNaN(a)
检查
a
是否为
NaN
@DotNetDreamer检查
$(“#TextBoxTotalMarks”).val()
$(“#TxBx_marks tained”).val()
在javascript中有值吗?@DotNetDreamer:我添加了另一种可能性(使用
id
,在这里您可能使用
name
)。基本上,上面的方法是有效的。我正在使用id,请参见中的htmlquestion@DotNetDreamer:事实上,你不是。查看更新的答案。各种答案发现了几个不同的问题。我建议您使用任何一款像样的现代web浏览器,浏览客户端代码、设置断点、检查实际进入浏览器的标记等,以了解客户端上实际发生的情况。各种答案发现了几个不同的问题。我建议您使用任何一款像样的现代web浏览器,浏览客户端代码、设置断点、检查实际进入浏览器的标记等,以了解客户端上实际发生的情况。@DotNetdreamer添加了一把小提琴。@DotNetdreamer添加了一把小提琴。