Dot*_*mer 1 jquery conditional-statements
我试图通过划分获得的标记*100 /总标记在第三个文本框中显示值; 但我无法做到这一点;
$(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);
});
});
Run Code Online (Sandbox Code Playgroud)
当我在总标记文本框中输入类似100的内容而在标记获得的文本框中输入300时,我看不到消息"抱歉未被接受"
<tr>
<td class="shade">
<asp:Literal ID="Ltrl_TotalMarks" runat="server" Text="Total Marks"></asp:Literal>
</td>
<td>
<asp:TextBox ID="TextBoxTotalMarks" runat="server" />
</td>
</tr>
<tr>
<td class="shade">
<asp:Literal ID="Ltrl_MarksObtained" runat="server" Text="Marks Obtained"></asp:Literal>
</td>
<td>
<asp:TextBox ID="TxBx_MarksObtained" runat="server"
</td>
</tr>
<tr>
<td class="shade">
<asp:Literal runat="server" ID="Lit_MarksInPercent" Text="Marks In Percent"></asp:Literal>
</td>
<td>
<asp:TextBox runat="server" ID="TextBoxMarksInPercent" />
<span style="color: black;">%</span>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
更新 :( 显示标记时)
问题是ID你提供的asp:TextBox不是它的客户端 ID.为此,您需要使用其ClientID属性,例如:
var a = parseInt($("#<%=TextBoxTotalMarks.ClientID%>").val(), 10);
Run Code Online (Sandbox Code Playgroud)
原始答案:
我认为lc.的答案可能是主要问题 (不是自编辑以来),而是另外两件事:
请注意,您正在比较字符串(因此"100"将是< "30").如果您要比较数字,请使用parseInt以下返回值val:
var a = parseInt($("#TextBoxTotalMarks").val(), 10);
var b = parseInt($("#TxBx_MarksObtained").val(), 10);
Run Code Online (Sandbox Code Playgroud)
然后你可能想稍微改变你的状况:
if (isNaN(a) || isNaN(b) || a < b) {
Run Code Online (Sandbox Code Playgroud)请注意,TextBoxTotalMarks并TxBx_MarksObtained应id值,而不是name值.所以你的输入应该是这样的:
<input type="text" id="TextBoxTotalMarks">
<input type="text" id="TxBx_MarksObtained">
<input type="text" id="TextBoxMarksInPercent">
Run Code Online (Sandbox Code Playgroud)
或者,如果您想要使用name,请将您的选择器更改为形式input[name="TextBoxTotalMarks"]和类似.
有了这两个,它的工作原理:实例 | 来源 (我认为你的计算存在问题)