LABFINAL
LABFINAL
SP22-BCS-171
WEB
TECHNOLOGIES
LAB FINAL
SUBMITTED TO : MAA’M
SADAF RIAZ
PART (a)
Code :
import React, { useState, useEffect } from 'react';
name: '',
email: '',
country: '',
gender: '',
subjects: [],
address: '',
});
const [errors, setErrors] = useState({});
useEffect(() => {
validateForm();
}, [formData]);
if (!formData.name) {
valid = false;
if (!formData.email || !emailRegex.test(formData.email)) {
valid = false;
if (!formData.country) {
valid = false;
if (!formData.gender) {
valid = false;
}
if (formData.subjects.length < 1) {
valid = false;
if (!formData.address) {
valid = false;
setErrors(newErrors);
setIsValid(valid);
};
setFormData(prevState => {
? [...prevState.subjects, value]
});
} else {
};
if (isValid) {
setFormData({
name: '',
email: '',
country: '',
gender: '',
subjects: [],
});
} else {
};
return (
<div>
<h1>Registration Form</h1>
<form onSubmit={handleSubmit}>
<div>
<label>Name:</label>
<input
type="text"
name="name"
value={formData.name}
onChange={handleChange}
/>
{errors.name && <span style={{ color: 'red' }}>{errors.name}</span>}
</div>
<div>
<label>Email:</label>
<input
type="email"
name="email"
value={formData.email}
onChange={handleChange}
/>
</div>
<div>
<label>Country:</label>
<select
name="country"
value={formData.country}
onChange={handleChange}
>
<option value="CA">Canada</option>
<option value="MX">Mexico</option>
<option value="AU">Australia</option>
</select>
</div>
<div>
<label>Gender:</label>
<input
type="radio"
name="gender"
value="male"
onChange={handleChange}
/> Male
<input
type="radio"
name="gender"
value="female"
onChange={handleChange}
/> Female
</div>
<div>
<label>Subjects:</label>
<div>
<input
type="checkbox"
name="subjects"
value="Math"
checked={formData.subjects.includes('Math')}
onChange={handleChange}
/> Math
<input
type="checkbox"
name="subjects"
value="Science"
checked={formData.subjects.includes('Science')}
onChange={handleChange}
/> Science
<input
type="checkbox"
name="subjects"
value="History"
checked={formData.subjects.includes('History')}
onChange={handleChange}
/> History
</div>
</div>
<div>
<input
type="text"
name="address"
value={formData.address}
onChange={handleChange}
/>
</div>
<button type="submit">Save</button>
</form>
</div>
);
};
Screenshots :
PART (b)
Code :
USER COMPONENT :
return (
<div>
<User name={userName} /> {/* Pass the name prop */}
<User /> {/* This will display the default message "Hello, Guest" */}
</div>
);
};
function App() {
return (
<div>
<User name="MUHAMMAD MUJTABA" /> {/* Passing name prop */}
<User /> {/* No name prop, so defaults to "Guest" */}
</div>
);
}
PART (c)
Code :
import React, { useState } from 'react';
};
return (
<div>
<h2>Message Input</h2>
<input
type="text"
value={message}
onChange={handleChange}
/>
</div>
);
};
Screenshots :