我将 javascript 注入 PHP 网站以避免弹出窗口,自动提交表单。此外,jquery 存在问题,因此我使用的是纯 javascript。
这是页面上的表格:
<form action='http://mywebsite.com/index.php?&act=MYFUNCTION&CODE=01&CookieDate=1' name='subscribe_check' method='POST'>
<input type='hidden' name='value1' value='dynamicallygenerated'>
<input type='hidden' name='Value2' value='BlogSection'>
<input type='hidden' name='Value3' value='BlogName'>
<select class='forminput' name='sub_id' onchange='this.form.submit()'>
<option value='------------' selected='selected'>To read this article, you must choose a subscription level</option>
<option value='1'>Subscribe to daily updates</option>
<option value='2'>Subscribe to promotional emails</option>
<option value='3'>No thanks, I'm not interested in being healthy</option>
</select>
</form>
这是我的 JavaScript:
// unselect any selected item on the SELECT
if( document.getElementsByName('subscribe_check').selectedIndex )
document.getElementsByName('subscribe_check')[document.getElementsByName('subscribe_check').selectedIndex].selected = false;
// select select the last option
document.getElementsByName('subscribe_check')[1][3].selected = true;
// submit the form
document.forms[0].submit();
当我手动单击表单时,我知道这些值已设置
value1: dynamicallygenerated
value2: HealthyFoodSection
value3: HealthyFoodFunBlog
但是当我的javascript提交表单时,这些值被提交
value1: dynamicallygenerated
value2: BlogSection
value3: BlogName
我 100% 确定没有其他 javascript 正在触发以更改值 - 不能直接onchange
调用submit()
。
我不明白为什么我的 javascript 提交表单不会像手动单击它那样更改值?如果发生 PHP,我不明白它是如何检测到我的 javascript 提交表单而不是我点击提交,提交点击是提交点击,对吧?