簡體   English   中英

功能未按預期響應

[英]Function is not responding as intended

我試圖從數據庫中提取數據,並將其動態添加到表單中。根據數據庫中的數據值,我有一對單選按鈕(“是”和“否”),將以不同的方式進行檢查。

為此,我具有一個功能,該功能接受單選按鈕的值作為參數,並根據檢查“是”或“否”的位置來警告消息。 但是,當前該功能將單選按鈕保持為未選中狀態,即使它已被選中,我也看不出有什么問題。

我將不勝感激。

我的jQuery代碼(提取):

function checkRadio(radio){

    if(radio.checked)
        {
            alert("button is checked");//$(".BizEdititemDiscountDetails").hide();
        }
        else
        {
            alert("button is not checked");//$(".BizEdititemDiscountDetails").show();
        }

    };

    function radioCheck(){

        var state=$("#BizEditItemRadioNo").val();
        checkRadio(state);

    };
    <!--Loads item categories-->
    $('#BizEditItemCat').load('getitemcategory.php');

    <!--Loads item subcategories-->
    $('#BizEditItemCat').change(function(){

        var category=$('#BizEditItemCat').val();
        var encoded= encodeURIComponent(category);
        //window.location.href='getbusinesssubcategory.php?category='+encoded;
        $('#BizEditItemSubCat').load('getitemsubcategory.php?category='+encoded);
    });

    <!--Loads items-->
    $('#BizEditItemSubCat').change(function(){

        var category=$('#BizEditItemCat').val();
        var subcategory=$('#BizEditItemSubCat').val();
        $('#BizEditItemOld').load("getitems.php",{category:category,subcategory:subcategory});

    });
    <!--Loads item details-->
    $('#BizEditItemOld').change(function(){

        var category=$('#BizEditItemCat').val();
        var subcategory=$('#BizEditItemSubCat').val();
        var item=$('#BizEditItemOld').val();
        $('#ItemDetailsContainer').load("getitemdetails.php",{category:category,subcategory:subcategory,item:item},function(){

            radioCheck();

        });
    });

動態添加的部分(提取):

if($discount=="1")
{

        echo"<div class='BizEditItemDetails'>";
            echo"<label for='BizEditItemName'>Name:</label>";
            echo"<input class='BizEditItemInput' type='text' id='BizEditItemName' name='BizEditItemName' size='30' maxlength='50' value=\"$name\">";
            echo"<span></span>";
        echo"</div>";

        echo"<div class='BizEditItemDetails'>";
            echo"<label for='BizEditItemPrice'>Price:</label>";
            echo"<input class='BizEditItemInput' type='number' id='BizEditItemPrice' name='BizEditItemPrice' step='any' min=0 value=\"$price\">";
            echo"<span></span>";
        echo"</div>";

        echo"<div class='BizEditItemDetails'>";
            echo"<label>Discount:</label>";
                echo"<input type='radio' checked='checked' class='BizEditItemInput' value='Yes' id='BizEditItemRadioYes' name='BizEditItemDiscount'>Yes";
                echo"<input type='radio' class='BizEditItemInput' value='No'  id='BizEditItemRadioNo' name='BizEditItemDiscount' step='any'>No";
            echo"</span></span>";
        echo"</div>";


        echo"<div class='BizEditItemDetails'>";
            echo"<div class='BizEdititemDiscountDetails'>";
                echo"<label for='BizEditItemPercent'>Discount Percentage</label>";
                echo"<input class='BizEditItemInput' type='number' id='BizEditItemPercent' name='BizEditItemPercent' step='any' min=0 value=\"$discountpercent\">%";
                echo"<span></span>";
            echo"</div>";
        echo"</div>";

        echo"<div class='BizEditItemDetails'>";
            echo"<div class='BizEdititemDiscountDetails'>";
                echo"<label for='BizEditItemDiscountPrice'>Discounted Price:</label>";
                echo"<input class='BizEditItemInput' type='number' id='BizEditItemDiscountPrice' name='BizEditItemDiscountPrice' step='any' min=0 value=\"$discountprice\" readonly >";
                echo"<span></span>";
            echo"</div>";
        echo"</div>";

        echo"<div class='BizEditItemDetails'>";
                echo"<label for='BizEditItemQty'>Quantity:</label>";
                echo"<input class='BizEditItemInput' type='number' id='BizEditItemQty' name='BizEditItemQty' min=0 value=\"$qty\">";
                echo"<span></span>";
        echo"</div>";



        echo"<div class='BizEditItemDetails'>";
            echo"<label for='BizEditItemDesc'>Desc:</label>";
            echo"<textarea class='BizEditItemInput' id='BizEditItemDesc' name='BizEditItemDesc' cols='30' rows='5'>$desc</textarea>";
            echo"<span></span>";
        echo"</div>";

        echo"<div class='BizEditItemDetails'>";
            echo"<input class='BizEditItemInput' style='margin-left:360px' type='submit' name='BizEditItemSubmit' value='Submit'>";
        echo"</div>";

}

從動態添加部分的摘錄中可以看出,單選按鈕已經通過checked =“ checked”進行了檢查,但是我一直在我的服務器日志中獲得警報(“ button not not checked”),而沒有任何其他錯誤(本地主機) )或在Chrome的開發者控制台中。

編輯:(jQuery代碼的其余部分)

<!--Manages loaded item details-->  

$('#ItemDetailsContainer').on('change','#BizEditItemRadioNo',function(){

radioCheck(this);

<!--Shows the details when yes is clicked-->
$('#BizEditItemRadioYes').click(function(){

    $('.BizEdititemDiscountDetails').show();

});
<!--Hides the details when no is clicked-->
$('#BizEditItemRadioNo').click(function(){

    $('.BizEdititemDiscountDetails').hide();

});
<!--calculates the discounted price when discount is checked yes-->
$('#BizEditItemRadioYes').change(function(){
    if($(this).val() == 'Yes'){

    <!--calculates discount price when discount percentage changes-->
    $('#BizEditItemPercent').change(function(){
        var percent=$('#BizEditItemPercent').val();
        var price=$('#BizEditItemPrice').val();
        var discountpercent=percent / 100;
        var discountprice=price * discountpercent;
        $('#BizEditItemDiscountPrice').val(price - discountprice);
    });
    <!--calculates discount price when discount price changes-->
    $('#BizEditItemPrice').change(function(){
        var percent=$('#BizEditItemPercent').val();
        var price=$('#BizEditItemPrice').val();
        var discountpercent=percent / 100;
        var discountprice=price * discountpercent;
        $('#BizEditItemDiscountPrice').val(price - discountprice);
    });

   }
});

$('#BizEditItem').validate({

    errorElement:"span",
    errorPlacement:function(error,element){

        $(error).insertAfter(element);

    },

    rules:{

        BizEditItemCat:{

            required:true

        },

        BizEditItemSubCat:{

            required:true

        },

        BizEditItemOld:{

            required:true

        },

        BizEditItemName:{

            required:true,
            minlength:5

        },

        BizEditItemPrice:{

            required:true,
            min:0

        },

        BizEditItemDiscount:{

            required:true

        },

        BizEditItemPercent:{

            required:true

        },

        BizEditItemDiscountPrice:{

            required:true

        },

        BizEditItemQty:{

            required:true,
            min:0

        },

        BizEditItemDesc:{

            required:true,
            minlength:20

        },

    messages:{

        BizEditItemCat:{

            required:"Please select an item category."

        },

        BizEditItemSubCat:{

            required:"Please select an item subcategory."

        },

        BizEditItemOld:{

            required:"Please select an item."

        },

        BizEditItemName:{

            required:"Please enter an item name.",
            minlength:"Please enter at least 5 characters."

        },

        BizEditItemPrice:{

            required:"Please enter an item price.",
            min:"Please enter a value greater than 0."

        },

        BizEditItemDiscount:{

            required:"Please enter a value."

        },

        BizEditItemPercent:{

            required:"Please enter a value."

        },

        BizEditItemDiscountPrice:{

            required:"Please enter a value."

        },

        BizEditItemQty:{

            required:"Please enter the number of items you have in stock.",
            min:"Please enter a value greater than 0."

        },

        BizEditItemDesc:{

            required:"Please enter an item description.",
            minlength:"Please enter at least 20 characters."

        },

    },

    },

    submitHandler:function(form){

    form.submit();

    }

});

});

.val()返回輸入元素的當前值。 例如

<input type="radio" name="foo" value="bar" id="baz" />

var x = $('#baz').val(); // returns 'bar'

然后,您可以執行

checkRadio('bar');
if ('bar'.checked) { ... }

字符串沒有“ .checked”屬性。 您需要傳遞代表單選按鈕本身的節點,例如

checkRadio($('#baz'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM