请帮我弄清楚错误..问题是如果我把名字放在输入中,id =" name"并按回车或按钮提交一切工作,我有警报成功。 PRoblem:我选择其中一个选项type = radio并点击提交或输入我没有消息(提醒成功)......
html部分
<form>
<input id="name" type="text">
<input value="1" type="radio" id="typeP">
<input value="2" type="radio" id="typeR">
<input type="submit" value="Submit" class="button">
</form>
的JavaScript(jQuery的)
$(function() {
$(".button").click(function() {
var name = $("input#name").val();
if ( ($("input#typeP").prop("checked")) ) {
var type = $("input#typeP").val();
} else {
var type = $("input#typeR").val();
}
var str = 'name' + name + '&type' + type;
$.ajax ({
type: "POST",
url: "up.php",
data: str,
success: function () {
alert('success');
}
});
});
答案 0 :(得分:2)
您可以简单地使用此类数据
data: { name: name, type: type },
此外,您使用的是submit
类型的按钮,因此当您点击它时,它会自动提交表单。你应该阻止它来做ajax。使用event.preventDefault()
来阻止表单提交
$(".button").click(function(e) {
e.preventDafault();
var name = $("input#name").val();
if (($("input#typeP").prop("checked")) == true) {
var type = $("input#typeP").val();
} else {
var type = $("input#typeR").val();
}
var str = 'name' + name + '&type' + type;
$.ajax({
type: "POST",
url: "up.php",
data: {
name: name,
type: type
},
success: function() {
alert('success');
}
});
});
答案 1 :(得分:2)
您需要阻止默认表单提交。您可能遇到的是页面正在重新加载
将type="button"
更改为=
按钮类型不会触发要提交的表单。
另外,如其他人所述,在数据字符串
中修复您的missind$file_url = 'http://www.myremoteserver.com/file.exe';
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url); // do the double-download-dance (dirty but worky)
答案 2 :(得分:0)
作为查询字符串的参数应该作为'param=value'
传递,你错过了=
来分隔参数和值。
var str = 'name='+name+'&type='+type;
click
事件不适用于submit
按钮。您可以将其替换为submit
handler`
$(".button").closest('form').submit(function() {
});
或使用event.preventDefault()
if()
可能会缩减为
if ($("input#typeP").prop("checked"))
{
var type = $("input#typeP").val();
}
else
{
var type = $("input#typeR").val();
}