0

我需要使用 jQuery 库将输入中的产品信息添加到表中。我现在尝试了相当长的一段时间,但我没有得到任何地方。首先,我需要在输入中输入数据,选择适当的单选按钮,然后验证输入字段。如果没有错误,应将产品信息添加到表中。我尝试使用以下代码:jsFiddle

没有什么能按预期工作。我究竟做错了什么?

JS代码:

$(document).ready(function () {

//Global variables
var productName = "";
var price = 0;
var onStack = "N/A";

$("body > form").submit(function () {
    //Check if any of requested inputs is empty
    if ($("#name").val().length == 0) {
        //Missing name alert
        $("#errors").val('Missing product name');
        break;
    } else if ($("#price").val() == 0) {
        //Missing price alert
        $("#errors").val('Missing price');
        break;
    }

    //Get values from text inputs
    productName = $("#name").val();
    price = $("#price").val();

    //Check radio buttons and assign values
    if ($('input[value = "true"]'.is(':checked')) {
        onStack = "Product available";
    } else if ('input[value = "false"]'.is(':checked') {
        onStack = "Not available";
    }

    //Add values to table
    $("table tr:last").after("<tr><td>$productName</td><td>$price</td><td>$onStack</td></tr>");
    });
});

HTML 代码:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="index.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>

<body>
    <form method="" action="">
        <input type="text" id="name" placeholder="Product name" />
        <br />
        <input type="text" id="price" placeholder="Price" />
        <br/>
        <input type="radio" name="stack" value="true">Product available
        <br />
        <input type="radio" name="stack" value="false">Product not available
        <br />
        <input type="submit" value="Submit">
    </form>
    <div id="errors"></div>
    <br />
    <table border="1">
        <tr>
            <th>Product name</th>
            <th>Price</th>
            <th>Stack</th>
        </tr>
    </table>
    <div id="sumOnStack">Sum of available products</div>
    <div id="SumNotOnStack">Sum of unavailable products</div>
    <input type="button" id="resetForm" value="Reset form" />
    <br />
</body>
</html>
4

1 回答 1

0
$(document).ready(function () {

    //Global variables
    var productName = "";
    var price = 0;
    var onStack = "N/A";

    $("body > form").submit(function ( e) {
        //Check if any of requested inputs is empty
         $("#errors").html('');
        if ($("#name").val().length == 0) {
            //Missing name alert
            $("#errors").html('Missing product name');
            return false;

        } else if ($("#price").val() == 0) {
            //Missing price alert
            $("#errors").html('Missing price');
            return false;
        } else if($('input[name="stack"]:checked').length == 0) {
            $("#errors").html('Missing product availibility');
            return false;

        }

        //Get values from text inputs
        productName = $("#name").val();
        price = $("#price").val();
        var stack = $('input[name="stack"]:checked');
        console.log( $(stack).val() );
        //Check radio buttons and assign values
        if ($(stack).val() == 'true') {
            onStack = "Product available";
        } else {
            onStack = "Not available";
        }

        //Add values to table
        $("table tr:last").after("<tr><td>"+productName+"</td><td>"+ price +"</td><td>"+ onStack +"</td></tr>");
        return false;
        });
    });

请试试这个。希望上面的代码对你有帮助。

于 2013-05-24T12:20:04.250 回答