我已在html中创建了一个包含2个输入字段first name
和last name
的表单,并将required
属性添加到输入类型标记中。我还制作了两个按钮Submit
和View
。如果两个字段都为空,则会显示please fill out this field attribute
消息。当我单击提交按钮时,我的表单中的数据使用php进入我的sql数据库,这很好。但是,当我单击视图按钮时,我只想显示一条消息,但不填写first name
和last name
文本区域。如何使用视图按钮执行此操作?
tl;博士:我想要'必要'输入类型标记的属性仅适用于提交按钮而不适用于视图按钮。我该怎么办?我使用HTML作为表单,CSS用于样式,PHP用于sql条目。感谢。
答案 0 :(得分:1)
您可以使用JavaScript执行类似操作,例如,通过为每个输入提供ID,然后您可以检测单击视图按钮的时间并删除“必需”属性。
这是一个JQuery示例:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
$( document ).ready(function() {
$("#view").click(function() {
$("#test1").removeAttr("required");
$("#test2").removeAttr("required");
});
});
</script>
</head>
<body>
<form action="example.php" method="POST">
First name:<br />
<input type="text" name="firstname" id="test1" required="required"><br />
Last name:<br />
<input type="text" name="lastname" id="test2" required="required"><br />
<input type="submit" value="Submit"> | <input type="submit" id="view" value="View">
</form>
</body>
</html>
答案 1 :(得分:1)
您还可以阻止点击事件的默认操作。在这种情况下,代码如下所示:
#include<iostream>
#include<fstream>
#include<cstring>
#include<string>
#include<math.h>
using namespace std;
struct Player
{
int playerID;
string name;
};
Player *fillPlayers();
int main()
{
Player *myPlayerPointer;
myPlayerPointer = fillPlayers();
return 0;
}
Player * fillPlayers() {
ifstream file1;
Player * fullPlayerPointer = new Player[244];
Player ourPlayers[244];
file1.open("Players.txt");
if (file1.fail()) {
cerr << "file1 did not open";
}
if (file1.is_open()){
while (!file1.eof()){
string size;
getline(file1, size);
for(int i = 0; i < 244; i++){
file1 >> ourPlayers[i].playerID;
file1 >> ourPlayers[i].name;
}
}
file1.close();
}
fullPlayerPointer = &ourPlayers[0];
return fullPlayerPointer;
}
或使用preventDefault:
$(document).ready(function() {
$("#view").click(function() {
return false;
});
});
两者似乎都很好。 #view(与前面提到的答案一样)是您想要阻止触发所需属性的按钮的id。