我有一个PHP表单需要一些非常简单的提交验证.我宁愿做验证客户端,因为有很多服务器端验证恰好处理将表单值写入数据库.所以我只想调用一个javascript函数onsubmit来比较两个密码字段中的值.这就是我所拥有的:
function validate(form){
var password = form.password.value;
var password2 = form.password2.value;
alert("password:"+password+" password2:" + password2);
if (password != password2) {
alert("not equal");
document.getElementByID("passwordError").style.display="inline";
return false;
}
alert("equal");
return true;
}
Run Code Online (Sandbox Code Playgroud)
如果两个密码不匹配,则会显示包含错误消息的默认隐藏div.警报只是显示密码和密码2的值,然后再次显示它们是否匹配(不会在生产代码中使用).
我正在使用input type = submit按钮,并在表单标记中调用该函数:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" onsubmit="return validate(this);">
Run Code Online (Sandbox Code Playgroud)
输入不匹配的值时,所有内容都会按预期发出警报.我希望(并假设,基于过去的使用)如果函数返回false,则不会发生实际提交.然而,确实如此.我在密码字段中输入不匹配的值测试,以及警报清楚地表明我的价值观和不相等的结果,但实际行动的形式仍然发生,它的尝试写入我的数据库.
我是PHP的新手; 有什么关于它不会让我这样与javascript结合?如果返回true,使用input type =按钮并在函数本身中包含submit()会更好吗?
我有一个动态生成的字段组的表单 - 后端是php/mySQL,表单是通过从表中读取数据并为每个记录创建一组字段来创建的.该表单有一些javascript onSubmit,确认用户是否真的想保存他们的更改,但如果他们说他们不想保存,我就无法恢复到原始值.从数据库重新加载页面不是一种选择.
我刚刚继承了一些代码,之前没有看过这种格式.这是一个数组:
$arrayWeather = array('weatherParameters' => array(
'wspd' => $_GET['wspd'] == 'wspd',
'wdir' => $_GET['wdir'] == 'wdir',
'waveh' => $_GET['waveh'] == 'waveh'));
Run Code Online (Sandbox Code Playgroud)
我以前从未见过这个; 这到底是什么意思?
'wspd' => $_GET['wspd'] == 'wspd'
Run Code Online (Sandbox Code Playgroud)
它是if语句的快捷方式,如果_ $ GET ['wspd']存在,请将名为wspd的数组键设置为字面值wspd吗?或完全不同的东西?
我在IE8调试器中遇到jquery错误,但我不确定是哪个函数导致它.我在这里看到了很多帖子,说明IE8不支持native trim(),但我不是(我不认为)使用本机版本(我继承了这段代码;它不是我写的东西从头开始.)
这是导致问题的块 - 它是点击功能的一部分:
greenlight = false;
link = $(this);
href = $(this).attr("href");
row = $(this).parent().parent();
if ($(":text", row).exists()) {
new_email = jQuery.trim($(":text", row).val());
//do stuff here
}
Run Code Online (Sandbox Code Playgroud)
我在调试器中遇到的错误是在启动new_email的行上; 错误是"对象不支持此属性或方法".
任何人都可以帮我弄清楚1)IE8不支持哪些属性或方法,2)我能做些什么来修复它?我绝不是一个jquery专家; 我是99%的服务器端.
该代码适用于Chrome,Safari和Firefox.
我有一些非常混乱的代码,我继承了无法正常工作.我做了一个console.log找出原因,它告诉我我的变量是未定义的.
这是功能 - 除了console.log简洁之外,我已经删除了所有内容.
function pageClick(pageToLoad, requestParams, origLoc, tag) {
console.log("requestparams draw: " . requestParams.drawSideBar);
}
Run Code Online (Sandbox Code Playgroud)
这是来电者:
pageClick( "pizza", {drawSideBar: true} );
Run Code Online (Sandbox Code Playgroud)
当我运行该函数时,它告诉我这requestParams是未定义的.我不确定为什么; 据我所知,它被传递了一个完全有效的对象.我确定我错过了一些明显的东西,但不知道它是什么.
我有两个带有单选按钮的选项表.第一种包含调味汁(marinara,bbq等).第二种包含酱汁量(常规,额外等).酱汁量有三种选择 - 左,全,右.

HTML很乱,由CMS生成,我无法更改,因此我无法使用我的工作.
当用户选择除Marinara之外的酱汁时,应该隐藏除常规酱之外的酱汁量选项.

我写了一些(丑陋的)jquery,隐藏酱量选项,然后重新显示常规酱选项,但它显示整行,包括左右单选按钮.我需要隐藏左右单选按钮,但保持显示中心(整个)按钮.
该表的代码相当庞大; 我在这里有一个小提琴,其中包含比我在这里发布的更大的块.
这是酱油味道行的样子:
<tr class="pb-radio">
<td class="pb-radio-label pb-highlight"><label>Marinara Sauce</label></td>
<td class="pb-left">
<div class="">
<input type="radio" name="sauce_flavor.left" class="pb-radio-sauce pb-marinara-sauce">
</div>
</td>
<td class="pb-whole">
<div class="pb-highlight">
<input type="radio" checked="" name="sauce_flavor.whole" class="pb-radio-sauce pb-marinara-sauce">
</div>
</td>
<td class="pb-right">
<div class="">
<input type="radio" name="sauce_flavor.right" class="pb-radio-sauce pb-marinara-sauce">
</div>
</td>
</tr>
<tr class="pb-radio">
<td class="pb-radio-label "><label>Garlic Parm Sauce*</label></td>
<td class="pb-left">
<div class=""> </div>
</td>
<td class="pb-whole">
<div class="">
<input type="radio" name="sauce_flavor.whole" class="pb-radio-sauce pb-sauce-no-size-allowed">
</div>
</td>
<td class="pb-right">
<div class=""></div> …Run Code Online (Sandbox Code Playgroud)