0

現在、Javascript と JQuery を使用しています (どちらも初心者なので簡単に操作できます)。目標は、フォームが正しく入力されていない場合です。追加するには、フォームが正しくないというメッセージを追加します。フォームが正しく入力されると、「正しくない」メッセージが削除されます。ただし、追加の HTML を求めるために不適切な入力を入力した後、それを取り除くためにフォームを修正すると、javascript は remove 関数の後で終了します。

また、条件付きで削除する方法はありますか?つまり、「削除する html が存在する場合は削除し、そうでない場合は何もしない」という既存のメソッドはありますか。または、独自のフラグを作成する必要がありますか。

    $(document).ready(function ()
    {
        $('#basic').on('submit', function(e)
        {
            if(!isBasicInfoValid())
            {
                if(!error)
                {
                    $('#basic').append($("<div class='basicError'>Input is not valid! </div>"));
                }
                error=true;
            }
            else if(error)
            {
                error=false;
                $('#basic').remove($(".basicError"));
                //program is stopping after remove for some reason
            }
            e.preventDefault();
        });
    };
   <body>
        <div class='form'>
            <h3> Basic Information </h3>
            <form id='basic'>
                <div>Year of Birth: <input type='number' name='YOB'> </div> 
                <div>Current Savings: <input type='number' name='CurrSav'> 
                </div>  
                <div>Expected Retirement Age: <input type='number' name='RetAge'></div>     
                <div>Life expectancy: <input type='number' name='LifeExp'>
                </div>  
                <div><input type='submit' value='Submit'></div> 
            </form>
        </div>
        <div class='form'>
            <h3> Scenario </h3>
            <form id='scenario'>
                <div>Name: <input type='text' name='ScenarioName'> </div>
                <div>Rate of Investment Return (While Working): <input type='number' name='Working'></div>
                <div>Rate of Investment Return (Retired): <input type='number' name='Retired'></div>
                <div>Desired Retirement Yearly Income: <input type='number' name='desiredInc'></div>
                <div><input type='submit' value='Submit'></div>
            </form>
            <div><button id='add' type='submit'>Add Scenario </button></div>
        </div>
</body>
4

3 に答える 3

2

removeセレクターを受け取り、jQuery オブジェクトを指定しました。セレクターが必要なため、jQuery が JS エラーをスローするため、停止しています。

これを試して:

$('#basic').remove(".basicError");

または、 が 1 つしかないため、次の.basicErrorように実行できます。

$(".basicError").remove();
于 2013-10-02T08:29:17.910 に答える