Javascript AJAX post onclick

Javascript AJAX post onclick,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我试图弄清楚为什么在发布ajax代码时会得到这样的结果 <input type="text" name="inputDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst" onchange="mySubmit(this.form)" value="@inputDate" autocomplete="off" placeholder="@placeholder

我试图弄清楚为什么在发布ajax代码时会得到这样的结果

        <input type="text" name="inputDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
            onchange="mySubmit(this.form)" value="@inputDate" autocomplete="off" placeholder="@placeholderStartDate.ToString("MMM d, yyyy")" readonly="readonly" />

        <input type="text" name="endDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
            onchange="mySubmit(this.form)" value="@endDate" autocomplete="off" placeholder="@noEndDate.ToString("MMM d, yyyy")" readonly="readonly" />

        <select name="NormOrAvg" class="dwmViewSelect" onchange="mySubmit(this.form)">
            <option selected=@(Request.Form["NormOrAvg"] == "1") value="1">Rep Per Set</option>
            <option selected=@(Request.Form["NormOrAvg"] == "2") value="2">Average Rep Per Set</option>
        </select>
    </div>
    <div class="holdLiftMenu">
        <ul class="holdLiftMenuUL">
            <li class="holdLiftMenuLI">
                <a class="holdLiftMenuA total current">Total
                    <input type="hidden" name="hid4" id="hid4" value="4" />
                </a>
            </li>
            <li class="holdLiftMenuLI">
                <a onclick="mySubmit(this.form)" class="holdLiftMenuA squat">Squat
                    <input type="hidden" name="hid1" id="hid1" value="" />
                </a>
            </li>
            <li class="holdLiftMenuLI">
                <a onclick="mySubmit(this.form)" class="holdLiftMenuA benchpress">Benchpress
                    <input type="hidden" name="hid2" id="hid2" value="" />
               </a>
            </li>
            <li class="holdLiftMenuLI">
                <a onclick="mySubmit(this.form)" class="holdLiftMenuA deadlift">Deadlift
                    <input type="hidden" name="hid3" id="hid3" value="" />
                </a>
            </li>
        </ul>
    </div>
</form>
如您所见,在我表单中的大多数内容上,我使用
onchange=“mySubmit(this.form)”
onclick=“mySubmit(this.form)”
使用ajax提交表单,因此这对输入元素有效,它将所有正确的div和内容返回到我的div中,以显示返回的所有数据

        <input type="text" name="inputDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
            onchange="mySubmit(this.form)" value="@inputDate" autocomplete="off" placeholder="@placeholderStartDate.ToString("MMM d, yyyy")" readonly="readonly" />

        <input type="text" name="endDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
            onchange="mySubmit(this.form)" value="@endDate" autocomplete="off" placeholder="@noEndDate.ToString("MMM d, yyyy")" readonly="readonly" />

        <select name="NormOrAvg" class="dwmViewSelect" onchange="mySubmit(this.form)">
            <option selected=@(Request.Form["NormOrAvg"] == "1") value="1">Rep Per Set</option>
            <option selected=@(Request.Form["NormOrAvg"] == "2") value="2">Average Rep Per Set</option>
        </select>
    </div>
    <div class="holdLiftMenu">
        <ul class="holdLiftMenuUL">
            <li class="holdLiftMenuLI">
                <a class="holdLiftMenuA total current">Total
                    <input type="hidden" name="hid4" id="hid4" value="4" />
                </a>
            </li>
            <li class="holdLiftMenuLI">
                <a onclick="mySubmit(this.form)" class="holdLiftMenuA squat">Squat
                    <input type="hidden" name="hid1" id="hid1" value="" />
                </a>
            </li>
            <li class="holdLiftMenuLI">
                <a onclick="mySubmit(this.form)" class="holdLiftMenuA benchpress">Benchpress
                    <input type="hidden" name="hid2" id="hid2" value="" />
               </a>
            </li>
            <li class="holdLiftMenuLI">
                <a onclick="mySubmit(this.form)" class="holdLiftMenuA deadlift">Deadlift
                    <input type="hidden" name="hid3" id="hid3" value="" />
                </a>
            </li>
        </ul>
    </div>
</form>
然而,在我的
  • 表单底部的
    中,我也有
    onclick=“mySubmit(this.form)”
    ,但它不起作用,出于某种原因,它会在div中显示我的整个页面,显示我的数据,这在我看来很奇怪,我能用我的
  • 以其他方式发布onclick吗

            <input type="text" name="inputDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@inputDate" autocomplete="off" placeholder="@placeholderStartDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <input type="text" name="endDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@endDate" autocomplete="off" placeholder="@noEndDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <select name="NormOrAvg" class="dwmViewSelect" onchange="mySubmit(this.form)">
                <option selected=@(Request.Form["NormOrAvg"] == "1") value="1">Rep Per Set</option>
                <option selected=@(Request.Form["NormOrAvg"] == "2") value="2">Average Rep Per Set</option>
            </select>
        </div>
        <div class="holdLiftMenu">
            <ul class="holdLiftMenuUL">
                <li class="holdLiftMenuLI">
                    <a class="holdLiftMenuA total current">Total
                        <input type="hidden" name="hid4" id="hid4" value="4" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA squat">Squat
                        <input type="hidden" name="hid1" id="hid1" value="" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA benchpress">Benchpress
                        <input type="hidden" name="hid2" id="hid2" value="" />
                   </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA deadlift">Deadlift
                        <input type="hidden" name="hid3" id="hid3" value="" />
                    </a>
                </li>
            </ul>
        </div>
    </form>
    
    HTML代码:

            <input type="text" name="inputDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@inputDate" autocomplete="off" placeholder="@placeholderStartDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <input type="text" name="endDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@endDate" autocomplete="off" placeholder="@noEndDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <select name="NormOrAvg" class="dwmViewSelect" onchange="mySubmit(this.form)">
                <option selected=@(Request.Form["NormOrAvg"] == "1") value="1">Rep Per Set</option>
                <option selected=@(Request.Form["NormOrAvg"] == "2") value="2">Average Rep Per Set</option>
            </select>
        </div>
        <div class="holdLiftMenu">
            <ul class="holdLiftMenuUL">
                <li class="holdLiftMenuLI">
                    <a class="holdLiftMenuA total current">Total
                        <input type="hidden" name="hid4" id="hid4" value="4" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA squat">Squat
                        <input type="hidden" name="hid1" id="hid1" value="" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA benchpress">Benchpress
                        <input type="hidden" name="hid2" id="hid2" value="" />
                   </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA deadlift">Deadlift
                        <input type="hidden" name="hid3" id="hid3" value="" />
                    </a>
                </li>
            </ul>
        </div>
    </form>
    

    这是因为在
    li
    中,最后一个元素指的是它自己,而最后一个元素没有导致未定义的
    form
    属性

            <input type="text" name="inputDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@inputDate" autocomplete="off" placeholder="@placeholderStartDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <input type="text" name="endDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@endDate" autocomplete="off" placeholder="@noEndDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <select name="NormOrAvg" class="dwmViewSelect" onchange="mySubmit(this.form)">
                <option selected=@(Request.Form["NormOrAvg"] == "1") value="1">Rep Per Set</option>
                <option selected=@(Request.Form["NormOrAvg"] == "2") value="2">Average Rep Per Set</option>
            </select>
        </div>
        <div class="holdLiftMenu">
            <ul class="holdLiftMenuUL">
                <li class="holdLiftMenuLI">
                    <a class="holdLiftMenuA total current">Total
                        <input type="hidden" name="hid4" id="hid4" value="4" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA squat">Squat
                        <input type="hidden" name="hid1" id="hid1" value="" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA benchpress">Benchpress
                        <input type="hidden" name="hid2" id="hid2" value="" />
                   </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA deadlift">Deadlift
                        <input type="hidden" name="hid3" id="hid3" value="" />
                    </a>
                </li>
            </ul>
        </div>
    </form>
    
    将所有的
    onchange/onclick=“mySubmit(this.form)
    替换为
    onchange/onclick=“mySubmit(this)
    并将您的
    mySubmit
    函数更改为:

            <input type="text" name="inputDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@inputDate" autocomplete="off" placeholder="@placeholderStartDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <input type="text" name="endDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@endDate" autocomplete="off" placeholder="@noEndDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <select name="NormOrAvg" class="dwmViewSelect" onchange="mySubmit(this.form)">
                <option selected=@(Request.Form["NormOrAvg"] == "1") value="1">Rep Per Set</option>
                <option selected=@(Request.Form["NormOrAvg"] == "2") value="2">Average Rep Per Set</option>
            </select>
        </div>
        <div class="holdLiftMenu">
            <ul class="holdLiftMenuUL">
                <li class="holdLiftMenuLI">
                    <a class="holdLiftMenuA total current">Total
                        <input type="hidden" name="hid4" id="hid4" value="4" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA squat">Squat
                        <input type="hidden" name="hid1" id="hid1" value="" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA benchpress">Benchpress
                        <input type="hidden" name="hid2" id="hid2" value="" />
                   </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA deadlift">Deadlift
                        <input type="hidden" name="hid3" id="hid3" value="" />
                    </a>
                </li>
            </ul>
        </div>
    </form>
    
    function mySubmit(theForm) {
        theForm = $(theForm).closest("form");
        $.ajax({ // create an AJAX call...
            data: $(theForm).serialize(), // get the form data
            type: $(theForm).attr('method'), // GET or POST
            url: $(theForm).attr('action'), // the file to call
            success: function (response) { // on success..
                $('#here').html(response); // update the DIV
            }
        });
    }
    
    上面的示例代码段:

            <input type="text" name="inputDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@inputDate" autocomplete="off" placeholder="@placeholderStartDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <input type="text" name="endDate" spellcheck="false" class="datepicker metricDateTextbox capitalFirst"
                onchange="mySubmit(this.form)" value="@endDate" autocomplete="off" placeholder="@noEndDate.ToString("MMM d, yyyy")" readonly="readonly" />
    
            <select name="NormOrAvg" class="dwmViewSelect" onchange="mySubmit(this.form)">
                <option selected=@(Request.Form["NormOrAvg"] == "1") value="1">Rep Per Set</option>
                <option selected=@(Request.Form["NormOrAvg"] == "2") value="2">Average Rep Per Set</option>
            </select>
        </div>
        <div class="holdLiftMenu">
            <ul class="holdLiftMenuUL">
                <li class="holdLiftMenuLI">
                    <a class="holdLiftMenuA total current">Total
                        <input type="hidden" name="hid4" id="hid4" value="4" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA squat">Squat
                        <input type="hidden" name="hid1" id="hid1" value="" />
                    </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA benchpress">Benchpress
                        <input type="hidden" name="hid2" id="hid2" value="" />
                   </a>
                </li>
                <li class="holdLiftMenuLI">
                    <a onclick="mySubmit(this.form)" class="holdLiftMenuA deadlift">Deadlift
                        <input type="hidden" name="hid3" id="hid3" value="" />
                    </a>
                </li>
            </ul>
        </div>
    </form>
    
    函数mySubmit(表单){
    console.log($(theForm).closest(“form”).attr(“action”);
    }
    
    
    • 全部的
    • 蹲下
    • 台式机
    • 硬举

    我认为
    这个
    不会是表单。。你试过console.log
    form
    变量吗?哈哈哈,还是同样的问题