我有一个奇怪的情况......(像我这样的初学者不熟悉专家:)
在我的网站上,我有:
<form runat="server">
<!--some user controls-->
<form action="http://gramma.us1.list-manage.com/subscribe/post?u=64d2cf63fb98f334f406892db&id=f3181fb3be" method="post">
<!-- rest of newsletter code -->
</form>
<!--other user controls-->
</form>
如您所见,该嵌套表单来自邮件黑猩猩时事通讯订阅HTML代码的一些生成代码。
当然,这不起作用。 (页面已成功呈现,但表单发布不起作用)
问题是:
runat="server"
表单来将主表单与嵌套表单分开... 更新:
来自邮件黑猩猩的整个代码...
<div id="mc_embed_signup">
<form action="http://gramma.us1.list-manage1.com/subscribe/post?u=64d2cf63fb98f334f406892db&id=f3181fb3be" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" style="font: normal 100% Arial, sans-serif;font-size: 10px;">
<fieldset style="-moz-border-radius: 4px;border-radius: 4px;-webkit-border-radius: 4px;border: 1px solid #ccc;padding-top: 1.5em;margin: .5em 0;background-color: #fff;color: #000;text-align: left;">
<legend style="white-space: normal;text-transform: capitalize;font-weight: bold;color: #000;background: #fff;padding: .5em 1em;border: 1px solid #ccc;-moz-border-radius: 4px;border-radius: 4px;-webkit-border-radius: 4px;font-size: 1.2em;"><span>join our mailing list</span></legend>
<div class="indicate-required" style="text-align: right;font-style: italic;overflow: hidden;color: #000;margin: 0 9% 0 0;">* indicates required</div>
<div class="mc-field-group" style="margin: 1.3em 5%;clear: both;overflow: hidden;">
<label for="mce-EMAIL" style="display: block;margin: .3em 0;line-height: 1em;font-weight: bold;">Adresa de e-mail <strong class="note-required">*</strong>
</label>
<input type="text" value="" name="EMAIL" class="required email" id="mce-EMAIL" style="margin-right: 1.5em;padding: .2em .3em;width: 90%;float: left;z-index: 999;">
</div>
<div id="mce-responses" style="float: left;top: -1.4em;padding: 0em .5em 0em .5em;overflow: hidden;width: 90%;margin: 0 5%;clear: both;">
<div class="response" id="mce-error-response" style="display: none;margin: 1em 0;padding: 1em .5em .5em 0;font-weight: bold;float: left;top: -1.5em;z-index: 1;width: 80%;background: FBE3E4;color: #D12F19;"></div>
<div class="response" id="mce-success-response" style="display: none;margin: 1em 0;padding: 1em .5em .5em 0;font-weight: bold;float: left;top: -1.5em;z-index: 1;width: 80%;background: #E3FBE4;color: #529214;"></div>
</div>
<div><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="btn" style="clear: both;width: auto;display: block;margin: 1em 0 1em 5%;"></div>
</fieldset>
<a href="#" id="mc_embed_close" class="mc_embed_close" style="display: none;">Close</a>
</form>
</div>
<script type="text/javascript">
var fnames = new Array(); var ftypes = new Array(); fnames[0] = 'EMAIL'; ftypes[0] = 'email'; fnames[1] = 'FNAME'; ftypes[1] = 'text';
try {
var jqueryLoaded = jQuery;
jqueryLoaded = true;
} catch (err) {
var jqueryLoaded = false;
}
var head = document.getElementsByTagName('head')[0];
if (!jqueryLoaded) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js';
head.appendChild(script);
if (script.readyState && script.onload !== null) {
script.onreadystatechange = function () {
if (this.readyState == 'complete') mce_preload_check();
}
}
}
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://downloads.mailchimp.com/js/jquery.form-n-validate.js';
head.appendChild(script);
var err_style = '';
try {
err_style = mc_custom_error_style;
} catch (e) {
err_style = 'margin: 1em 0 0 0; padding: 1em 0.5em 0.5em 0.5em; background: ERROR_BGCOLOR none repeat scroll 0% 0%; font-weight: bold; float: left; z-index: 1; width: 80%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: ERROR_COLOR;';
}
var head = document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
if (style.styleSheet) {
style.styleSheet.cssText = '.mce_inline_error {' + err_style + '}';
} else {
style.appendChild(document.createTextNode('.mce_inline_error {' + err_style + '}'));
}
head.appendChild(style);
setTimeout('mce_preload_check();', 250);
var mce_preload_checks = 0;
function mce_preload_check() {
if (mce_preload_checks > 40) return;
mce_preload_checks++;
try {
var jqueryLoaded = jQuery;
} catch (err) {
setTimeout('mce_preload_check();', 250);
return;
}
try {
var validatorLoaded = jQuery("#fake-form").validate({});
} catch (err) {
setTimeout('mce_preload_check();', 250);
return;
}
mce_init_form();
}
function mce_init_form() {
jQuery(document).ready(function ($) {
var options = { errorClass: 'mce_inline_error', errorElement: 'div', onkeyup: function () { }, onfocusout: function () { }, onblur: function () { } };
var mce_validator = $("#mc-embedded-subscribe-form").validate(options);
$("#mc-embedded-subscribe-form").unbind('submit'); //remove the validator so we can get into beforeSubmit on the ajaxform, which then calls the validator
options = { url: 'http://gramma.us1.list-manage.com/subscribe/post-json?u=64d2cf63fb98f334f406892db&id=f3181fb3be&c=?', type: 'GET', dataType: 'json', contentType: "application/json; charset=utf-8",
beforeSubmit: function () {
$('#mce_tmp_error_msg').remove();
$('.datefield', '#mc_embed_signup').each(
function () {
var txt = 'filled';
var fields = new Array();
var i = 0;
$(':text', this).each(
function () {
fields[i] = this;
i++;
});
$(':hidden', this).each(
function () {
if (fields.length == 2) fields[2] = { 'value': 1970 }; //trick birthdays into having years
if (fields[0].value == 'MM' && fields[1].value == 'DD' && fields[2].value == 'YYYY') {
this.value = '';
} else if (fields[0].value == '' && fields[1].value == '' && fields[2].value == '') {
this.value = '';
} else {
this.value = fields[0].value + '/' + fields[1].value + '/' + fields[2].value;
}
});
});
return mce_validator.form();
},
success: mce_success_cb
};
$('#mc-embedded-subscribe-form').ajaxForm(options);
});
}
function mce_success_cb(resp) {
$('#mce-success-response').hide();
$('#mce-error-response').hide();
if (resp.result == "success") {
$('#mce-' + resp.result + '-response').show();
$('#mce-' + resp.result + '-response').html(resp.msg);
$('#mc-embedded-subscribe-form').each(function () {
this.reset();
});
} else {
var index = -1;
var msg;
try {
var parts = resp.msg.split(' - ', 2);
if (parts[1] == undefined) {
msg = resp.msg;
} else {
i = parseInt(parts[0]);
if (i.toString() == parts[0]) {
index = parts[0];
msg = parts[1];
} else {
index = -1;
msg = resp.msg;
}
}
} catch (e) {
index = -1;
msg = resp.msg;
}
try {
if (index == -1) {
$('#mce-' + resp.result + '-response').show();
$('#mce-' + resp.result + '-response').html(msg);
} else {
err_id = 'mce_tmp_error_msg';
html = '<div id="' + err_id + '" style="' + err_style + '"> ' + msg + '</div>';
var input_id = '#mc_embed_signup';
var f = $(input_id);
if (ftypes[index] == 'address') {
input_id = '#mce-' + fnames[index] + '-addr1';
f = $(input_id).parent().parent().get(0);
} else if (ftypes[index] == 'date') {
input_id = '#mce-' + fnames[index] + '-month';
f = $(input_id).parent().parent().get(0);
} else {
input_id = '#mce-' + fnames[index];
f = $().parent(input_id).get(0);
}
if (f) {
$(f).append(html);
$(input_id).focus();
} else {
$('#mce-' + resp.result + '-response').show();
$('#mce-' + resp.result + '-response').html(msg);
}
}
} catch (e) {
$('#mce-' + resp.result + '-response').show();
$('#mce-' + resp.result + '-response').html(msg);
}
}
}
</script>
<!--End mc_embed_signup-->
答案 0 :(得分:2)
我发现最简单的方法是从你的页面中删除邮件黑猩猩表单,并且只有一个asp.net表单,其字段与邮件黑猩猩的字段相同。然后,在按钮单击事件上执行以下操作:
Response.Redirect("MailChimp.aspx?email={0}&name={1}", txtEmail.Text, txtName.Text)
然后,在MailChimp.aspx上,有一个包含邮件黑猩猩动作URL的表单,并填写如下字段:
<input type="text" name="email" value='<%=request("email")' />
然后在页面上放置一些javascript以在页面加载时提交表单。
答案 1 :(得分:0)
不幸的是,这些方法都不是非常漂亮。
答案 2 :(得分:0)
您还可以从回发中直接重定向到mailchimp,将subscribe = 1私有用于新订阅:
Response.Redirect(string.Format("http://[YOUR URL]/subscribe/post" +
"?u=31da5df49c6d1901c0fca018f&id=c7bb5267ef&EMAIL={0}" +
"&subscribe=1", address));
答案 3 :(得分:0)
这可能会迟到,但我只是在我的asp.net网站上运行了嵌入式mailchimp代码。
我删除了表单标记,并将其输入按钮替换为:
<asp:Button runat="server" PostBackUrl="http://[YOUR URL]/subscribe/post?u=64d2cf63fb98f334f406892db&id=f3181fb3be" Text="Subscribe"/>
它对我来说非常合适。 (我应该注意到我使用的是嵌入式代码的非JavaScript版本。)