我做了一个小表单,它是使用 ajax 提交给自己的,让一切都以形式形式工作。然而,当我输入我的 ajax post 代码时,我的其他 javascript 函数已停止工作(错误:____ 未定义),并且我的单选按钮应该是排他性的(选择一个取消选择另一个)也停止工作(因为添加了 ajax 代码)
这是我的代码:
https://jsfiddle.net/dmge51g8/
当 ajax 代码被取出时,这段代码工作正常,但在我的浏览器控制台中出现 ajax 帖子错误。
function newOrExisting() {
if (document.getElementById('typeNew').checked) {
document.getElementById('newProviderInput').style.display = 'block';
document.getElementById('existingProviderInput').style.display = 'none';
} else if (document.getElementById('typeExisting').checked) {
document.getElementById('existingProviderInput').style.display = 'block';
document.getElementById('newProviderInput').style.display = 'none';
}
};
function clearForm() {
document.getElementById("createPanelForm").reset();
};
更新:删除了关于单选按钮的部分(更新了JSFiddle)
您可以避免将 newOrExisting 函数定义为变量,而是将其直接分配给单选按钮上的单击事件,如下所示:
$(".radio input").click(function() {
if (document.getElementById('typeNew').checked) {
document.getElementById('newProviderInput').style.display = 'block';
document.getElementById('existingProviderInput').style.display = 'none';
} else if (document.getElementById('typeExisting').checked) {
document.getElementById('existingProviderInput').style.display = 'block';
document.getElementById('newProviderInput').style.display = 'none';
}
};
这将更符合您将 ajax 功能附加到窗体的方式。
在代码的 HTML 部分中,单选按钮的名称不同。
name="typeExisting"
name="typeNew"
这允许分别处理两个不同的单选按钮(并且您可以选择两个)